Implementation notes: amd64, luft, crypto_stream/aes128ctr

Computer: luft
Architecture: amd64
CPU ID: GenuineIntel-000306d4-bfebfbff
SUPERCOP version: 20200702
Operation: crypto_stream
Primitive: aes128ctr
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
17684194 0 020480 4096 0dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020070920200702
26764525 0 020480 4096 0dolbeau/aesenc-intclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020070920200702
26844544 0 020480 4096 0dolbeau/aesenc-intclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020070920200702
26884525 0 020480 4096 0dolbeau/aesenc-intclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020070920200702
62282971 0 016384 4096 0dolbeau/aesenc-intclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020070920200702
63281880 0 016384 4096 0dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020070920200702
67041889 0 016384 4096 0dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020070920200702
69521735 0 012288 4096 0dolbeau/aesenc-intgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020070920200702

Compiler output

Implementation: cryptopp
Security model: unknown
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
stream.cpp: stream.cpp:1:10: fatal error: 'cryptopp/aes.h' file not found
stream.cpp: #include <cryptopp/aes.h>
stream.cpp: ^~~~~~~~~~~~~~~~
stream.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE cryptopp
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE cryptopp
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE cryptopp
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE cryptopp

Compiler output

Implementation: cryptopp
Security model: unknown
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
stream.cpp: stream.cpp:1:10: fatal error: cryptopp/aes.h: No such file or directory
stream.cpp: 1 | #include <cryptopp/aes.h>
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 -fPIC -fPIE cryptopp
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE cryptopp
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE cryptopp
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE cryptopp

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aesenc-int.c: aesenc-int.c:28:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i_u *' [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include/emmintrin.h:3548:34: note: passing argument to parameter '__p' here
aesenc-int.c: _mm_loadu_si128(__m128i_u const *__p)
aesenc-int.c: ^
aesenc-int.c: 1 warning generated.

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

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aesenc-int.c: aesenc-int.c:28:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i_u *' [-Wincompatible-pointer-types]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include/emmintrin.h:3548:34: note: passing argument to parameter '__p' here
aesenc-int.c: _mm_loadu_si128(__m128i_u const *__p)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:45:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK1(0x01);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:36:11: note: expanded from macro 'BLOCK1'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
aesenc-int.c: ^
aesenc-int.c: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include/__wmmintrin_aes.h:136: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:46:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK1(0x02);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:36:11: note: expanded from macro 'BLOCK1'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
aesenc-int.c: ^
aesenc-int.c: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include/__wmmintrin_aes.h:136: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:47:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
aesenc-int.c: aesenc-int.c: In function 'aesni_key128_expand':
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: 28 | __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: | |
aesenc-int.c: | const unsigned int *
aesenc-int.c: In file included from /opt/local/lib/gcc10/gcc/x86_64-apple-darwin19/10.1.0/include/xmmintrin.h:1316,
aesenc-int.c: from /opt/local/lib/gcc10/gcc/x86_64-apple-darwin19/10.1.0/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:12:
aesenc-int.c: /opt/local/lib/gcc10/gcc/x86_64-apple-darwin19/10.1.0/include/emmintrin.h:701:35: note: expected 'const __m128i_u *' but argument is of type 'const unsigned int *'
aesenc-int.c: 701 | _mm_loadu_si128 (__m128i_u const *__P)
aesenc-int.c: | ~~~~~~~~~~~~~~~~~^~~

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

Compiler output

Implementation: openssl
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
stream.c: stream.c:2:10: fatal error: 'openssl/evp.h' file not found
stream.c: #include <openssl/evp.h>
stream.c: ^~~~~~~~~~~~~~~
stream.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE openssl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE openssl
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE openssl
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE openssl
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE openssl

Compiler output

Implementation: openssl
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
stream.c: stream.c:2:10: fatal error: openssl/evp.h: No such file or directory
stream.c: 2 | #include <openssl/evp.h>
stream.c: | ^~~~~~~~~~~~~~~
stream.c: compilation terminated.

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