1
1
mirror of https://github.com/henrydcase/pqc.git synced 2024-11-27 01:41:40 +00:00
pqcrypto/crypto_kem/kyber512/avx2/consts.h
Thom Wiggers f4bd312180 Adds AVX2 variants of Kyber512, Kyber768, Kyber1024 (#225)
* Integrate Kyber-AVX2 into PQClean

* Fix types and formatting in Kyber

* Workaround a valgrind crash

* Remove comment in shuffle.s

* Remove some extraneous truncations

* fixup! Fix types and formatting in Kyber
2019-09-10 11:45:01 +02:00

25 lines
782 B
C

#ifndef CONSTS_H
#define CONSTS_H
#include <immintrin.h>
#include <stdint.h>
typedef union {
uint16_t as_arr[16];
__m256i as_vec;
} aligned_uint16_t;
extern const uint16_t PQCLEAN_KYBER512_AVX2_zetas_exp[396];
extern const uint16_t PQCLEAN_KYBER512_AVX2_zetas_inv_exp[396];
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xq;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xqinv;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xv;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xflo;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xfhi;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xmontsqlo;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xmontsqhi;
extern const aligned_uint16_t PQCLEAN_KYBER512_AVX2_16xmask;
#endif