Implementation notes: amd64, skylake, crypto_stream/aes256ctr

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_stream
Primitive: aes256ctr
TimeImplementationCompilerBenchmark dateSUPERCOP version
1658dolbeau/aesenc-intgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
1660dolbeau/aesenc-intgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
1668dolbeau/aesenc-intclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
1672dolbeau/aesenc-intgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
1684dolbeau/aesenc-intclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
1692opensslgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
1692opensslgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
1694opensslclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121520161026
1694opensslclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
1694opensslclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
1694opensslclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
1694opensslgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
1694opensslgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
1694opensslgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
1694opensslgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
1694opensslgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
1694opensslgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
1694opensslgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
1694opensslgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
1694opensslgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
1694opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
1694opensslgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
1696opensslclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
1696opensslclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
1696opensslgcc -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -O3 -fomit-frame-pointer2016121520161026
1696opensslgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -O -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
1696opensslgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
1696opensslgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
1696opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
1696opensslgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
1698opensslclang -O3 -fomit-frame-pointer -Qunused-arguments2016121520161026
1698opensslclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121520161026
1698opensslgcc2016121520161026
1698opensslgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
1698opensslgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
1698opensslgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
1698opensslgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
1698opensslgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
1698opensslgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
1698opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
1698opensslgcc -march=nocona -O -fomit-frame-pointer2016121520161026
1700opensslcc2016121520161026
1700opensslclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
1700opensslgcc -O -fomit-frame-pointer2016121520161026
1700opensslgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
1700opensslgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
1700opensslgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
1700opensslgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
1700opensslgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
1700opensslgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
1700opensslgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
1700opensslgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
1702opensslgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
1702opensslgcc -funroll-loops2016121520161026
1702opensslgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
1702opensslgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
1702opensslgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
1702opensslgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
1702opensslgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
1704opensslclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
1704opensslgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
1706opensslgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
1706opensslgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
1708opensslgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
1708opensslgcc -march=k8 -O -fomit-frame-pointer2016121520161026
1710opensslgcc -m64 -O3 -fomit-frame-pointer2016121520161026
1712opensslgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
1712opensslgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
1718opensslgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
1722opensslgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
1722opensslgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
1722opensslgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
1722opensslgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
1722opensslgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
1722opensslgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
1724dolbeau/aesenc-intclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
1724opensslgcc -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
1724opensslgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
1724opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
1726dolbeau/aesenc-intclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
1726opensslgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -m64 -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
1726opensslgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
1728opensslgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
1734opensslgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
1758dolbeau/aesenc-intgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
1772dolbeau/aesenc-intgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
3922dolbeau/aesenc-intgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
3936dolbeau/aesenc-intgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
3940dolbeau/aesenc-intgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
3988dolbeau/aesenc-intgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
4000dolbeau/aesenc-intgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
4002dolbeau/aesenc-intgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
4004dolbeau/aesenc-intgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
4004dolbeau/aesenc-intgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
4006dolbeau/aesenc-intgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
4008dolbeau/aesenc-intgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
4874dolbeau/aesenc-intgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
4878dolbeau/aesenc-intgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
4886dolbeau/aesenc-intgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
4892dolbeau/aesenc-intgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
4894dolbeau/aesenc-intgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: cc
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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:35:0,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: aesenc-int.c: In function 'aesni_encrypt8':
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
aesenc-int.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
aesenc-int.c: ^~~~~~~~~~~~~~~~
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc dolbeau/aesenc-int
gcc dolbeau/aesenc-int
gcc -funroll-loops dolbeau/aesenc-int

Compiler output

Implementation: crypto_stream/aes256ctr/openssl
Compiler: cc
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: 107, namely:
CompilerImplementations
cc openssl
gcc openssl
gcc -O2 -fomit-frame-pointer openssl
gcc -O3 -fomit-frame-pointer openssl
gcc -O -fomit-frame-pointer openssl
gcc -Os -fomit-frame-pointer openssl
gcc -fno-schedule-insns -O2 -fomit-frame-pointer openssl
gcc -fno-schedule-insns -O3 -fomit-frame-pointer openssl
gcc -fno-schedule-insns -O -fomit-frame-pointer openssl
gcc -fno-schedule-insns -Os -fomit-frame-pointer openssl
gcc -funroll-loops openssl
gcc -funroll-loops -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -O -fomit-frame-pointer openssl
gcc -funroll-loops -Os -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer openssl
gcc -m64 -O2 -fomit-frame-pointer openssl
gcc -m64 -O3 -fomit-frame-pointer openssl
gcc -m64 -O -fomit-frame-pointer openssl
gcc -m64 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core2 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -O -fomit-frame-pointer openssl
gcc -m64 -march=core2 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -O -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -Os -fomit-frame-pointer openssl
gcc -m64 -march=k8 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=k8 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=k8 -O -fomit-frame-pointer openssl
gcc -m64 -march=k8 -Os -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer openssl
gcc -m64 -march=nocona -O2 -fomit-frame-pointer openssl
gcc -m64 -march=nocona -O3 -fomit-frame-pointer openssl
gcc -m64 -march=nocona -O -fomit-frame-pointer openssl
gcc -m64 -march=nocona -Os -fomit-frame-pointer openssl
gcc -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -march=barcelona -O -fomit-frame-pointer openssl
gcc -march=barcelona -Os -fomit-frame-pointer openssl
gcc -march=k8 -O2 -fomit-frame-pointer openssl
gcc -march=k8 -O3 -fomit-frame-pointer openssl
gcc -march=k8 -O -fomit-frame-pointer openssl
gcc -march=k8 -Os -fomit-frame-pointer openssl
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
gcc -march=nocona -O2 -fomit-frame-pointer openssl
gcc -march=nocona -O3 -fomit-frame-pointer openssl
gcc -march=nocona -O -fomit-frame-pointer openssl
gcc -march=nocona -Os -fomit-frame-pointer openssl

Compiler output

Implementation: crypto_stream/aes256ctr/cryptopp
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
stream.cpp: stream.cpp:1:10: fatal error: 'cryptopp/aes.h' file not found
stream.cpp: #include gt;
stream.cpp: ^
stream.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer -Qunused-arguments cryptopp
clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments cryptopp
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments cryptopp
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments cryptopp
clang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments cryptopp
clang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments cryptopp
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cryptopp
clang++ -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cryptopp
clang++ -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cryptopp
clang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cryptopp

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
aesenc-int.c: aesenc-int.c:27:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: /usr/bin/../lib/clang/3.9.0/include/emmintrin.h:1858:32: note: passing argument to parameter '__p' here
aesenc-int.c: _mm_loadu_si128(__m128i const *__p)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:28:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: /usr/bin/../lib/clang/3.9.0/include/emmintrin.h:1858:32: note: passing argument to parameter '__p' here
aesenc-int.c: _mm_loadu_si128(__m128i const *__p)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:57:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK1(0x01);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:38:11: note: expanded from macro 'BLOCK1'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
aesenc-int.c: ^
aesenc-int.c: /usr/bin/../lib/clang/3.9.0/include/__wmmintrin_aes.h:147:12: note: expanded from macro '_mm_aeskeygenassist_si128'
aesenc-int.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:58:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK2(0x01);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:48:11: note: expanded from macro 'BLOCK2'
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments dolbeau/aesenc-int
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments dolbeau/aesenc-int
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments dolbeau/aesenc-int
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/aesenc-int
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/aesenc-int
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/aesenc-int

Compiler output

Implementation: crypto_stream/aes256ctr/openssl
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
stream.c: stream.c:12:3: warning: implicitly declaring library function 'memset' with type 'void *(void *, int, unsigned long)' [-Wimplicit-function-declaration]
stream.c: memset(temp, 0, outlen);
stream.c: ^
stream.c: stream.c:12:3: note: include the header gt; or explicitly provide a declaration for 'memset'
stream.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments openssl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
aesenc-int.c: aesenc-int.c:27:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: /usr/bin/../lib/clang/3.9.0/include/emmintrin.h:1858:32: note: passing argument to parameter '__p' here
aesenc-int.c: _mm_loadu_si128(__m128i const *__p)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:28:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: /usr/bin/../lib/clang/3.9.0/include/emmintrin.h:1858:32: note: passing argument to parameter '__p' here
aesenc-int.c: _mm_loadu_si128(__m128i const *__p)
aesenc-int.c: ^
aesenc-int.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments dolbeau/aesenc-int
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments dolbeau/aesenc-int
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments dolbeau/aesenc-int
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/aesenc-int

Compiler output

Implementation: crypto_stream/aes256ctr/cryptopp
Compiler: g++
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: 73, namely:
CompilerImplementations
g++ cryptopp
g++ -O2 -fomit-frame-pointer cryptopp
g++ -O3 -fomit-frame-pointer cryptopp
g++ -O -fomit-frame-pointer cryptopp
g++ -Os -fomit-frame-pointer cryptopp
g++ -fno-schedule-insns -O2 -fomit-frame-pointer cryptopp
g++ -fno-schedule-insns -O3 -fomit-frame-pointer cryptopp
g++ -fno-schedule-insns -O -fomit-frame-pointer cryptopp
g++ -fno-schedule-insns -Os -fomit-frame-pointer cryptopp
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer cryptopp
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer cryptopp
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer cryptopp
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer cryptopp
g++ -m64 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -O -fomit-frame-pointer cryptopp
g++ -m64 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx-i -O -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx-i -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer cryptopp
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -O -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer cryptopp
g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7-avx -O -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7-avx -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7 -O -fomit-frame-pointer cryptopp
g++ -m64 -march=corei7 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=k8 -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=k8 -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=k8 -O -fomit-frame-pointer cryptopp
g++ -m64 -march=k8 -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer cryptopp
g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer cryptopp
g++ -m64 -march=nocona -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=nocona -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=nocona -O -fomit-frame-pointer cryptopp
g++ -m64 -march=nocona -Os -fomit-frame-pointer cryptopp
g++ -march=barcelona -O2 -fomit-frame-pointer cryptopp
g++ -march=barcelona -O3 -fomit-frame-pointer cryptopp
g++ -march=barcelona -O -fomit-frame-pointer cryptopp
g++ -march=barcelona -Os -fomit-frame-pointer cryptopp
g++ -march=k8 -O2 -fomit-frame-pointer cryptopp
g++ -march=k8 -O3 -fomit-frame-pointer cryptopp
g++ -march=k8 -O -fomit-frame-pointer cryptopp
g++ -march=k8 -Os -fomit-frame-pointer cryptopp
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
g++ -march=nocona -O2 -fomit-frame-pointer cryptopp
g++ -march=nocona -O3 -fomit-frame-pointer cryptopp
g++ -march=nocona -O -fomit-frame-pointer cryptopp
g++ -march=nocona -Os -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_stream/aes256ctr/cryptopp
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
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.
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++ -m64 -march=barcelona -O2 -fomit-frame-pointer cryptopp
g++ -m64 -march=barcelona -O3 -fomit-frame-pointer cryptopp
g++ -m64 -march=barcelona -O -fomit-frame-pointer cryptopp
g++ -m64 -march=barcelona -Os -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: gcc -O2 -fomit-frame-pointer
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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:39:0,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
aesenc-int.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:38:9: note: called from here
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 84, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -fno-schedule-insns -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -fno-schedule-insns -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -fno-schedule-insns -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -fno-schedule-insns -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=k8 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=k8 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=k8 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=k8 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=nocona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=nocona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=nocona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=nocona -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=barcelona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=barcelona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=barcelona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=barcelona -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=k8 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=k8 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=k8 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=k8 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=nocona -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=nocona -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=nocona -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -march=nocona -Os -fomit-frame-pointer dolbeau/aesenc-int

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:39:0,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
aesenc-int.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:38:9: note: called from here
aesenc-int.c: ...
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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:39:0,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
aesenc-int.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:38:9: note: called from here
aesenc-int.c: ...

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

Compiler output

Implementation: crypto_stream/aes256ctr/openssl
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
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'
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 -m64 -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -m64 -march=barcelona -O -fomit-frame-pointer openssl
gcc -m64 -march=barcelona -Os -fomit-frame-pointer openssl

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xmmintrin.h:1249:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/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: 20, namely:
CompilerImplementations
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer dolbeau/aesenc-int
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer dolbeau/aesenc-int
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