Implementation notes: amd64, sliver, crypto_aead/aes256gcmv1

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: aes256gcmv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
19704dolbeau/aesenc-intclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
25770opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072420160718
26268opensslclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
26868opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072420160718
27126opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072420160718
28686opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072420160718
3212154refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
26947476refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072420160718
36805872refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072420160718
52529472refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072420160718
52803906refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072420160718

Compiler output

Implementation: crypto_aead/aes256gcmv1/cryptopp
Compiler: clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.cpp: stream.cpp:2: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: 1, namely:
CompilerImplementations
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cryptopp

Compiler output

Implementation: crypto_aead/aes256gcmv1/dolbeau/aesenc-int
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
aesenc-int.c: aesenc-int.c:42: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/local/bin/../lib/clang/3.5/include/emmintrin.h:1069: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:43: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/local/bin/../lib/clang/3.5/include/emmintrin.h:1069: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.
try.c: /tmp/try-anything-aec2e6.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-7f948a.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aes256gcmv1/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-c63958.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-7fdbfd.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/aes256gcmv1/openssl
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-f767e8.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-8fec4f.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl

Compiler output

Implementation: crypto_aead/aes256gcmv1/cryptopp
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.cpp: stream.cpp:2:26: error: cryptopp/aes.h: No such file or directory
stream.cpp: stream.cpp:3:26: error: cryptopp/gcm.h: No such file or directory
stream.cpp: stream.cpp:4:30: error: cryptopp/filters.h: No such file or directory
stream.cpp: stream.cpp:5:31: error: cryptopp/channels.h: No such file or directory
stream.cpp: stream.cpp: In function 'int crypto_aead_aes256gcmv1_cryptopp_encrypt(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*, const unsigned char*)':
stream.cpp: stream.cpp:30: error: 'string' is not a member of 'std'
stream.cpp: stream.cpp:30: error: expected `;' before 'cipher'
stream.cpp: stream.cpp:31: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:31: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:31: error: '::Encryption' has not been declared
stream.cpp: stream.cpp:31: error: expected `;' before 'e'
stream.cpp: stream.cpp:32: error: 'e' was not declared in this scope
stream.cpp: stream.cpp:33: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:33: error: expected `;' before 'aef'
stream.cpp: stream.cpp:34: error: 'aef' was not declared in this scope
stream.cpp: stream.cpp:34: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:35: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:36: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:37: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:41: error: 'cipher' was not declared in this scope
stream.cpp: stream.cpp:41: error: 'memcpy' was not declared in this scope
stream.cpp: stream.cpp:44: error: expected type-specifier before 'CryptoPP'
stream.cpp: stream.cpp:44: error: expected `)' before '::' token
stream.cpp: stream.cpp:44: error: expected `{' before '::' token
stream.cpp: stream.cpp:44: error: '::Exception' has not been declared
stream.cpp: ...

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_aead/aes256gcmv1/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
aesenc-int.c: aesenc-int.c:11:23: error: immintrin.h: No such file or directory
aesenc-int.c: aesenc-int.c:41: error: expected declaration specifiers or '...' before '__m128i'
aesenc-int.c: aesenc-int.c: In function 'aesni_key256_expand':
aesenc-int.c: aesenc-int.c:42: error: '__m128i' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:42: error: (Each undeclared identifier is reported only once
aesenc-int.c: aesenc-int.c:42: error: for each function it appears in.)
aesenc-int.c: aesenc-int.c:42: error: expected ';' before 'key0'
aesenc-int.c: aesenc-int.c:43: error: expected ';' before 'key1'
aesenc-int.c: aesenc-int.c:44: error: expected ';' before 'temp0'
aesenc-int.c: aesenc-int.c:47: error: 'rkeys' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:47: error: 'key0' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:48: error: 'temp0' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:49: error: 'temp2' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:49: error: 'key1' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:72: error: 'temp1' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:72: error: 'temp4' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c: At top level:
aesenc-int.c: aesenc-int.c:95: error: expected declaration specifiers or '...' before '__m128i'
aesenc-int.c: aesenc-int.c: In function 'aesni_encrypt1':
aesenc-int.c: aesenc-int.c:96: error: '__m128i' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:96: error: expected ';' before 'nv'
aesenc-int.c: aesenc-int.c:98: error: expected ';' before 'temp'
aesenc-int.c: aesenc-int.c:101: error: 'temp' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:101: error: 'rkeys' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:104: error: expected expression before ')' token
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_aead/aes256gcmv1/openssl
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//cc3P3k3j.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccc78pEJ.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aes256gcmv1/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccKgHLWU.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cc0nPtiW.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_aead/aes256gcmv1/ref
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccbZYGnV.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccMgbUHS.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_aead/aes256gcmv1/openssl
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//cckcWde1.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccboKQVn.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aes256gcmv1/openssl
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccH8d75P.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccEdcoIT.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aes256gcmv1/ref
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccyz5KPP.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cc7BEa8E.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_aead/aes256gcmv1/openssl
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccQ8y89V.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccGhSCIk.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aes256gcmv1/ref
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccWHT7DR.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccsbautx.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref