Implementation notes: amd64, waldorf, crypto_aead/silverv1

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_aead
Primitive: silverv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
152468littleendoptnotaesnigcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
163976littleendoptnotaesnigcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
164196littleendoptnotaesnigcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
168052littleendoptnotaesniclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
175992littleendoptnotaesnigcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
175996anotherlittleendgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
209020anotherlittleendgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
211200anotherlittleendgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
212888anotherlittleendgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
228988anotherlittleendclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
919308refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
1020060refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1030440refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1040564refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1042688refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_aead/silverv1/aesnioptimized
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:36:
encrypt.c: In file included from ./macs4AESNI.h:6:
encrypt.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
encrypt.c: # error "AES/PCLMUL instructions not enabled"
encrypt.c: ^
encrypt.c: In file included from encrypt.c:36:
encrypt.c: ./macs4AESNI.h:33:11: warning: implicit declaration of function '_mm_aeskeygenassist_si128' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: kp[1] = AES_128_key_exp(kp[0], 0x01);
encrypt.c: ^
encrypt.c: ./macs4AESNI.h:29:58: note: expanded from macro 'AES_128_key_exp'
encrypt.c: #define AES_128_key_exp(K, RCON) aes_128_key_expansion(K,_mm_aeskeygenassist_si128(K, RCON))
encrypt.c: ^
encrypt.c: ./macs4AESNI.h:33:11: error: passing 'int' to parameter of incompatible type '__m128i' (vector of 2 'long long' values)
encrypt.c: kp[1] = AES_128_key_exp(kp[0], 0x01);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./macs4AESNI.h:29:58: note: expanded from macro 'AES_128_key_exp'
encrypt.c: #define AES_128_key_exp(K, RCON) aes_128_key_expansion(K,_mm_aeskeygenassist_si128(K, RCON))
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./macs4AESNI.h:20:59: note: passing argument to parameter 'keygened' here
encrypt.c: static __m128i aes_128_key_expansion(__m128i key, __m128i keygened)
encrypt.c: ^
encrypt.c: ./macs4AESNI.h:34:11: error: passing 'int' to parameter of incompatible type '__m128i' (vector of 2 'long long' values)
encrypt.c: kp[2] = AES_128_key_exp(kp[1], 0x02);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./macs4AESNI.h:29:58: note: expanded from macro 'AES_128_key_exp'
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/silverv1/bigendoptimized
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:28:2: error: "This code produces standard results only on BE machines"
encrypt.c: #error "This code produces standard results only on BE machines"
encrypt.c: ^
encrypt.c: 1 error generated.

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

Compiler output

Implementation: crypto_aead/silverv1/aesnioptimized
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: In file included from macs4AESNI.h:6:0,
encrypt.c: from encrypt.c:36:
encrypt.c: macs4AESNI.h: In function 'AES_128_KEY_EXPANSION':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
encrypt.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
encrypt.c: ^
encrypt.c: In file included from encrypt.c:36:0:
encrypt.c: macs4AESNI.h:29:34: error: called from here
encrypt.c: #define AES_128_key_exp(K, RCON) aes_128_key_expansion(K,_mm_aeskeygenassist_si128(K, RCON))
encrypt.c: ^
encrypt.c: macs4AESNI.h:33:11: note: in expansion of macro 'AES_128_key_exp'
encrypt.c: kp[1] = AES_128_key_exp(kp[0], 0x01);
encrypt.c: ^
encrypt.c: In file included from macs4AESNI.h:6:0,
encrypt.c: from encrypt.c:36:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
encrypt.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
encrypt.c: ^
encrypt.c: In file included from encrypt.c:36:0:
encrypt.c: macs4AESNI.h:29:34: error: called from here
encrypt.c: #define AES_128_key_exp(K, RCON) aes_128_key_expansion(K,_mm_aeskeygenassist_si128(K, RCON))
encrypt.c: ^
encrypt.c: macs4AESNI.h:34:11: note: in expansion of macro 'AES_128_key_exp'
encrypt.c: kp[2] = AES_128_key_exp(kp[1], 0x02);
encrypt.c: ^
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/silverv1/bigendoptimized
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:28:2: error: #error "This code produces standard results only on BE machines"
encrypt.c: #error "This code produces standard results only on BE machines"
encrypt.c: ^

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