Implementation notes: amd64, utrecht, crypto_stream/aes256ctr

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_stream
Primitive: aes256ctr
TimeImplementationCompilerBenchmark dateSUPERCOP version
19341opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
19350opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
19350opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
19359opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
29304cryptoppg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
29313cryptoppg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
29358cryptoppg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
29448cryptoppg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
aesenc-int.c: aesenc-int.c: In function 'aesni_key256_expand':
aesenc-int.c: aesenc-int.c:27:3: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [enabled by default]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/xmmintrin.h:1246:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/immintrin.h:32,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:682:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
aesenc-int.c: _mm_loadu_si128 (__m128i const *__P)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:28:3: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [enabled by default]
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/xmmintrin.h:1246:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/immintrin.h:32,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:682:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
aesenc-int.c: _mm_loadu_si128 (__m128i const *__P)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:38:9: error: incompatible types when assigning to type '__m128i' from type 'int'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:57:3: note: in expansion of macro 'BLOCK1'
aesenc-int.c: BLOCK1(0x01);
aesenc-int.c: ^
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/aesenc-int
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/aesenc-int
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/aesenc-int
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/aesenc-int

Compiler output

Implementation: crypto_stream/aes256ctr/openssl
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_aes256ctr_openssl':
stream.c: stream.c:12:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
stream.c: memset(temp, 0, outlen);
stream.c: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv openssl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv openssl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv openssl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv openssl