Implementation notes: amd64, sliver, crypto_stream/aes256ctr

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_stream
Primitive: aes256ctr
TimeImplementationCompilerBenchmark dateSUPERCOP version
3810opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072420160718
3852opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072420160718
3906opensslclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
4470dolbeau/aesenc-intclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
4524opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072420160718
4716opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072420160718

Compiler output

Implementation: crypto_stream/aes256ctr/cryptopp
Compiler: clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -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: 1, namely:
CompilerImplementations
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cryptopp

Compiler output

Implementation: crypto_stream/aes256ctr/dolbeau/aesenc-int
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -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/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: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/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-76dae9.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-b048e4.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_stream/aes256ctr/openssl
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.c: stream.c:12:3: warning: implicitly declaring library function 'memset' with type 'void *(void *, int, unsigned long)'
stream.c: memset(temp, 0, outlen);
stream.c: ^
stream.c: stream.c:12:3: note: please include the header gt; or explicitly provide a declaration for 'memset'
stream.c: 1 warning generated.
try.c: /tmp/try-anything-76e894.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-3da816.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_stream/aes256ctr/cryptopp
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.cpp: stream.cpp:1:26: error: cryptopp/aes.h: No such file or directory
stream.cpp: stream.cpp:2:28: error: cryptopp/modes.h: No such file or directory
stream.cpp: stream.cpp: In function 'int crypto_stream_aes256ctr_cryptopp(unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
stream.cpp: stream.cpp:12: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:12: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:12: error: '::Encryption' has not been declared
stream.cpp: stream.cpp:12: error: expected `;' before 's'
stream.cpp: stream.cpp:13: error: 's' was not declared in this scope
stream.cpp: stream.cpp:14: error: 'size_t' was not declared in this scope
stream.cpp: stream.cpp: In function 'int crypto_stream_aes256ctr_cryptopp_xor(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
stream.cpp: stream.cpp:26: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:26: error: 'CryptoPP' has not been declared
stream.cpp: stream.cpp:26: error: '::Encryption' has not been declared
stream.cpp: stream.cpp:26: error: expected `;' before 's'
stream.cpp: stream.cpp:27: error: 's' was not declared in this scope
stream.cpp: stream.cpp:28: error: 'size_t' was not declared in this scope

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/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:26: error: expected declaration specifiers or '...' before '__m128i'
aesenc-int.c: aesenc-int.c: In function 'aesni_key256_expand':
aesenc-int.c: aesenc-int.c:27: error: '__m128i' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:27: error: (Each undeclared identifier is reported only once
aesenc-int.c: aesenc-int.c:27: error: for each function it appears in.)
aesenc-int.c: aesenc-int.c:27: error: expected ';' before 'key0'
aesenc-int.c: aesenc-int.c:28: error: expected ';' before 'key1'
aesenc-int.c: aesenc-int.c:29: error: expected ';' before 'temp0'
aesenc-int.c: aesenc-int.c:32: error: 'rkeys' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:32: error: 'key0' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:33: error: 'temp0' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:34: error: 'temp2' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:34: error: 'key1' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:57: error: 'temp1' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:57: error: 'temp4' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c: At top level:
aesenc-int.c: aesenc-int.c:80: error: expected declaration specifiers or '...' before '__m128i'
aesenc-int.c: aesenc-int.c: In function 'aesni_encrypt1':
aesenc-int.c: aesenc-int.c:81: error: '__m128i' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:81: error: expected ';' before 'nv'
aesenc-int.c: aesenc-int.c:83: error: expected ';' before 'temp'
aesenc-int.c: aesenc-int.c:86: error: 'temp' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:86: error: 'rkeys' undeclared (first use in this function)
aesenc-int.c: aesenc-int.c:89: 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_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: warning: incompatible implicit declaration of built-in function 'memset'
try.c: /tmp//ccZ2dons.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//ccb1AAKV.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_stream/aes256ctr/openssl
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_aes256ctr_openssl':
stream.c: stream.c:12: warning: incompatible implicit declaration of built-in function 'memset'
try.c: /tmp//ccfJrCjh.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//ccrWpwGQ.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_stream/aes256ctr/openssl
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_aes256ctr_openssl':
stream.c: stream.c:12: warning: incompatible implicit declaration of built-in function 'memset'
try.c: /tmp//ccvrQNrx.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//ccV75xxC.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_stream/aes256ctr/openssl
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_aes256ctr_openssl':
stream.c: stream.c:12: warning: incompatible implicit declaration of built-in function 'memset'
try.c: /tmp//ccMy0SSQ.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//ccAaPNMQ.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