avxdefs.h
// Pseudo parallel AES
// Probably noticeably slower than using pure 128 bit vectors
// Windows has problems with __m256i args passed by value.
// Use pointers to facilitate __m256i to __m128i conversion.
// When key is used switching keys may reduce performance.
Pseudo parallel AES
Probably noticeably slower than using pure 128 bit vectors
Windows has problems with __m256i args passed by value.
Use pointers to facilitate __m256i to __m128i conversion.
When key is used switching keys may reduce performance.
Pseudo parallel AES Probably noticeably slower than using pure 128 bit vectors Windows has problems with __m256i args passed by value . Use pointers to facilitate __m256i to __m128i conversion . When key is used switching keys may reduce performance .
inline __m256i mm256_aesenc_2x128( void *msg, void *key )
{
   ((__m128i*)msg)[0] = _mm_aesenc_si128( ((__m128i*)msg)[0],
                                          ((__m128i*)key)[0] );
   ((__m128i*)msg)[1] = _mm_aesenc_si128( ((__m128i*)msg)[1],
                                          ((__m128i*)key)[1] );
}
inline __m256i mm256_aesenc_2x128 ( void * msg , void * key ) { ( ( __m128i * ) msg ) [ 0 ] = _mm_aesenc_si128 ( ( ( __m128i * ) msg ) [ 0 ] , ( ( __m128i * ) key ) [ 0 ] ) ; ( ( __m128i * ) msg ) [ 1 ] = _mm_aesenc_si128 ( ( ( __m128i * ) msg ) [ 1 ] , ( ( __m128i * ) key ) [ 1 ] ) ; }
Pseudo parallel AES
Probably noticeably slower than using pure 128 bit vectors
Windows has problems with __m256i args passed by value.
Pseudo parallel AES Probably noticeably slower than using pure 128 bit vectors Windows has problems with __m256i args passed by value .