pqc/crypto_kem/mceliece6960119/avx/util.h
Thom Wiggers ac2c20045c Classic McEliece (#259)
* Add McEliece reference implementations

* Add Vec implementations of McEliece

* Add sse implementations

* Add AVX2 implementations

* Get rid of stuff not supported by Mac ABI

* restrict to two cores

* Ditch .data files

* Remove .hidden from all .S files

* speed up duplicate consistency tests by batching

* make cpuinfo more robust

* Hope to stabilize macos cpuinfo without ccache

* Revert "Hope to stabilize macos cpuinfo without ccache"

This reverts commit 6129c3cabe1abbc8b956bc87e902a698e32bf322.

* Just hardcode what's available at travis

* Fixed-size types in api.h

* namespace all header files in mceliece

* Ditch operations.h

* Get rid of static inline functions

* fixup! Ditch operations.h
2021-03-24 21:02:45 +00:00

24 lines
873 B
C

#ifndef PQCLEAN_MCELIECE6960119_AVX_UTIL_H
#define PQCLEAN_MCELIECE6960119_AVX_UTIL_H
/*
This file is for loading/storing data in a little-endian fashion
*/
#include "vec128.h"
#include <stdint.h>
void PQCLEAN_MCELIECE6960119_AVX_store_i(unsigned char *out, uint64_t in, int i);
void PQCLEAN_MCELIECE6960119_AVX_store2(unsigned char *dest, uint16_t a);
uint16_t PQCLEAN_MCELIECE6960119_AVX_load2(const unsigned char *src);
uint32_t PQCLEAN_MCELIECE6960119_AVX_load4(const unsigned char *src);
void PQCLEAN_MCELIECE6960119_AVX_irr_load(vec128 *out, const unsigned char *in);
void PQCLEAN_MCELIECE6960119_AVX_store8(unsigned char *out, uint64_t in);
uint64_t PQCLEAN_MCELIECE6960119_AVX_load8(const unsigned char *in);
vec128 PQCLEAN_MCELIECE6960119_AVX_load16(const unsigned char *in);
void PQCLEAN_MCELIECE6960119_AVX_store16(unsigned char *out, vec128 in);
#endif