-rw-r--r-- 1551 saferewrite-20210915/src/encode_256x2/avx/encode.c
#include <immintrin.h>
#include <stdint.h>
#include "crypto_encode.h"
void crypto_encode(unsigned char *s,const void *v)
{
__m256i a0 = _mm256_loadu_si256(0+(__m256i *) v);
__m256i a1 = _mm256_loadu_si256(1+(__m256i *) v);
__m256i a2 = _mm256_loadu_si256(2+(__m256i *) v);
__m256i a3 = _mm256_loadu_si256(3+(__m256i *) v);
__m256i a4 = _mm256_loadu_si256(4+(__m256i *) v);
__m256i a5 = _mm256_loadu_si256(5+(__m256i *) v);
__m256i a6 = _mm256_loadu_si256(6+(__m256i *) v);
__m256i a7 = _mm256_loadu_si256(7+(__m256i *) v);
__m256i bottom = _mm256_set1_epi8(1);
__m256i zero = _mm256_setzero_si256();
__m256i b0 = _mm256_cmpgt_epi8(a0&bottom,zero);
__m256i b1 = _mm256_cmpgt_epi8(a1&bottom,zero);
__m256i b2 = _mm256_cmpgt_epi8(a2&bottom,zero);
__m256i b3 = _mm256_cmpgt_epi8(a3&bottom,zero);
__m256i b4 = _mm256_cmpgt_epi8(a4&bottom,zero);
__m256i b5 = _mm256_cmpgt_epi8(a5&bottom,zero);
__m256i b6 = _mm256_cmpgt_epi8(a6&bottom,zero);
__m256i b7 = _mm256_cmpgt_epi8(a7&bottom,zero);
int32_t c0 = _mm256_movemask_epi8(b0);
int32_t c1 = _mm256_movemask_epi8(b1);
int32_t c2 = _mm256_movemask_epi8(b2);
int32_t c3 = _mm256_movemask_epi8(b3);
int32_t c4 = _mm256_movemask_epi8(b4);
int32_t c5 = _mm256_movemask_epi8(b5);
int32_t c6 = _mm256_movemask_epi8(b6);
int32_t c7 = _mm256_movemask_epi8(b7);
0[(int32_t *) s] = c0;
1[(int32_t *) s] = c1;
2[(int32_t *) s] = c2;
3[(int32_t *) s] = c3;
4[(int32_t *) s] = c4;
5[(int32_t *) s] = c5;
6[(int32_t *) s] = c6;
7[(int32_t *) s] = c7;
}