Implementation notes: amd64, pluton1mn, crypto_stream/aes256ctr

Computer: pluton1mn
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_stream
Primitive: aes256ctr
TimeImplementationCompilerBenchmark dateSUPERCOP version
2744opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
2772opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
2786opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
2800opensslicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
2828opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
2828opensslicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
2940dolbeau/aesenc-inticc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080720160806
2968dolbeau/aesenc-inticc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080720160806
3374dolbeau/aesenc-intgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080720160806
7336dolbeau/aesenc-intgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080720160806
8358dolbeau/aesenc-intgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080720160806
8932dolbeau/aesenc-intgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080720160806

Compiler output

Implementation: crypto_stream/aes256ctr/cryptopp
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.cpp: stream.cpp:1:26: fatal error: cryptopp/aes.h: No such file or directory
stream.cpp: #include gt;
stream.cpp: ^
stream.cpp: compilation terminated.

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

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: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
stream.c: memset(temp, 0, outlen);
stream.c: ^~~~~~
stream.c: stream.c:12:3: warning: incompatible implicit declaration of built-in function 'memset'
stream.c: stream.c:12:3: note: include 'gt;' or provide a declaration of 'memset'

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

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:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^
aesenc-int.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/emmintrin.h:696: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:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^
aesenc-int.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/emmintrin.h:696: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: ^~~~~~~~~~~~~~~

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: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
stream.c: stream.c(12): warning #266: function "memset" declared implicitly
stream.c: memset(temp, 0, outlen);
stream.c: ^
stream.c:

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer openssl
icc -xMIC-AVX512 -O3 -fomit-frame-pointer openssl

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
aesenc-int.c: aesenc-int.c(27): warning #167: argument of type "const unsigned int *" is incompatible with parameter of type "const union __m128i *"
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^
aesenc-int.c:
aesenc-int.c: aesenc-int.c(28): warning #167: argument of type "const unsigned int *" is incompatible with parameter of type "const union __m128i *"
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^
aesenc-int.c:

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xMIC-AVX512 -O3 -fomit-frame-pointer dolbeau/aesenc-int

Compiler output

Implementation: crypto_stream/aes256ctr/cryptopp
Compiler: icpc -xMIC-AVX512 -O2 -fomit-frame-pointer
stream.cpp: stream.cpp(1): catastrophic error: cannot open source file "cryptopp/aes.h"
stream.cpp: #include gt;
stream.cpp: ^
stream.cpp:
stream.cpp: compilation aborted for stream.cpp (code 4)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icpc -xMIC-AVX512 -O2 -fomit-frame-pointer cryptopp
icpc -xMIC-AVX512 -O3 -fomit-frame-pointer cryptopp