Implementation notes: amd64, h4e350, crypto_aead/aegis256

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: aegis256
TimeImplementationCompilerBenchmark dateSUPERCOP version
114117refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014060920140525
114171refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014060920140525
114177refgcc -funroll-loops -O2 -fomit-frame-pointer2014060920140525
114243refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014060920140525
114273refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014060920140525
114276refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014060920140525
114300refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014060920140525
114300refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014060920140525
114330refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014060920140525
114342refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014060920140525
114363refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014060920140525
114390refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014060920140525
114426refgcc -funroll-loops -O3 -fomit-frame-pointer2014060920140525
114495refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014060920140525
118722refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014060920140525
118764refgcc -O2 -fomit-frame-pointer2014060920140525
118836refgcc -march=k8 -O3 -fomit-frame-pointer2014060920140525
118989refgcc -march=k8 -O2 -fomit-frame-pointer2014060920140525
119064refgcc -m64 -O2 -fomit-frame-pointer2014060920140525
119172refgcc -march=barcelona -O2 -fomit-frame-pointer2014060920140525
119175refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014060920140525
119283refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014060920140525
119340refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014060920140525
119379refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014060920140525
119595refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014060920140525
119604refgcc -march=barcelona -O3 -fomit-frame-pointer2014060920140525
119634refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014060920140525
119733refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014060920140525
119775refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014060920140525
119841refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014060920140525
119841refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014060920140525
119907refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014060920140525
119949refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014060920140525
119976refgcc -O3 -fomit-frame-pointer2014060920140525
119982refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014060920140525
120003refgcc -m64 -O3 -fomit-frame-pointer2014060920140525
120006refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014060920140525
120015refgcc -funroll-loops -Os -fomit-frame-pointer2014060920140525
120093refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014060920140525
120177refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014060920140525
120207refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014060920140525
120255refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014060920140525
120447refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014060920140525
120507refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014060920140525
120573refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014060920140525
120594refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014060920140525
120603refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014060920140525
120687refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014060920140525
120774refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014060920140525
120852refgcc -funroll-loops -O -fomit-frame-pointer2014060920140525
120888refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014060920140525
121050refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014060920140525
121098refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014060920140525
121899refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014060920140525
121908refgcc -march=nocona -O3 -fomit-frame-pointer2014060920140525
122094refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014060920140525
122220refgcc -march=nocona -O2 -fomit-frame-pointer2014060920140525
122373refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014060920140525
122541refgcc -m64 -march=k8 -O -fomit-frame-pointer2014060920140525
122631refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014060920140525
122658refgcc -m64 -march=core2 -O -fomit-frame-pointer2014060920140525
122673refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014060920140525
122679refgcc -fno-schedule-insns -O -fomit-frame-pointer2014060920140525
122718refgcc -O -fomit-frame-pointer2014060920140525
122796refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014060920140525
122808refgcc -m64 -O -fomit-frame-pointer2014060920140525
122841refgcc -march=k8 -O -fomit-frame-pointer2014060920140525
122952refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014060920140525
122970refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014060920140525
123024refgcc -march=nocona -O -fomit-frame-pointer2014060920140525
123051refgcc -march=barcelona -O -fomit-frame-pointer2014060920140525
123081refgcc -m64 -march=nocona -O -fomit-frame-pointer2014060920140525
123117refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014060920140525
125970refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014060920140525
126120refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014060920140525
127014refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014060920140525
127017refgcc -Os -fomit-frame-pointer2014060920140525
127098refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014060920140525
127218refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014060920140525
127281refgcc -march=k8 -Os -fomit-frame-pointer2014060920140525
128193refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014060920140525
128400refgcc -march=nocona -Os -fomit-frame-pointer2014060920140525
128421refgcc -march=barcelona -Os -fomit-frame-pointer2014060920140525
128490refgcc -m64 -Os -fomit-frame-pointer2014060920140525
128754refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014060920140525
129384refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014060920140525
129624refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014060920140525
129645refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014060920140525
129648refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014060920140525
305184refgcc2014060920140525
305691refgcc -funroll-loops2014060920140525
305988refcc2014060920140525

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: cc
encrypt.c: In file included from encrypt.c:5:0:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.c: encrypt.c: In function 'aegis256_initialization':
encrypt.c: encrypt.c:42:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:43:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:44:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:45:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:46:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:47:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:56:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:57:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:58:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:59:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:60:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:61:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis256_tag_generation':
encrypt.c: encrypt.c:88:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:89:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:90:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:91:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:92:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:93:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis256_enc_aut_step':
encrypt.c: encrypt.c:127:18: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:128:18: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 88, namely:
CompilerImplementations
cc aesni
gcc aesni
gcc -O2 -fomit-frame-pointer aesni
gcc -O3 -fomit-frame-pointer aesni
gcc -O -fomit-frame-pointer aesni
gcc -Os -fomit-frame-pointer aesni
gcc -fno-schedule-insns -O2 -fomit-frame-pointer aesni
gcc -fno-schedule-insns -O3 -fomit-frame-pointer aesni
gcc -fno-schedule-insns -O -fomit-frame-pointer aesni
gcc -fno-schedule-insns -Os -fomit-frame-pointer aesni
gcc -funroll-loops aesni
gcc -funroll-loops -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -O -fomit-frame-pointer aesni
gcc -funroll-loops -Os -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -O -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -Os -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer aesni
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer aesni
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer aesni
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer aesni
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer aesni
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer aesni
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer aesni
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer aesni
gcc -m64 -O2 -fomit-frame-pointer aesni
gcc -m64 -O3 -fomit-frame-pointer aesni
gcc -m64 -O -fomit-frame-pointer aesni
gcc -m64 -Os -fomit-frame-pointer aesni
gcc -m64 -march=core2 -O2 -fomit-frame-pointer aesni
gcc -m64 -march=core2 -O3 -fomit-frame-pointer aesni
gcc -m64 -march=core2 -O -fomit-frame-pointer aesni
gcc -m64 -march=core2 -Os -fomit-frame-pointer aesni
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer aesni
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer aesni
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer aesni
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer aesni
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer aesni
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer aesni
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer aesni
gcc -m64 -march=corei7 -O -fomit-frame-pointer aesni
gcc -m64 -march=corei7 -Os -fomit-frame-pointer aesni
gcc -m64 -march=k8 -O2 -fomit-frame-pointer aesni
gcc -m64 -march=k8 -O3 -fomit-frame-pointer aesni
gcc -m64 -march=k8 -O -fomit-frame-pointer aesni
gcc -m64 -march=k8 -Os -fomit-frame-pointer aesni
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer aesni
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer aesni
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer aesni
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer aesni
gcc -m64 -march=nocona -O2 -fomit-frame-pointer aesni
gcc -m64 -march=nocona -O3 -fomit-frame-pointer aesni
gcc -m64 -march=nocona -O -fomit-frame-pointer aesni
gcc -m64 -march=nocona -Os -fomit-frame-pointer aesni
gcc -march=barcelona -O2 -fomit-frame-pointer aesni
gcc -march=barcelona -O3 -fomit-frame-pointer aesni
gcc -march=barcelona -O -fomit-frame-pointer aesni
gcc -march=barcelona -Os -fomit-frame-pointer aesni
gcc -march=k8 -O2 -fomit-frame-pointer aesni
gcc -march=k8 -O3 -fomit-frame-pointer aesni
gcc -march=k8 -O -fomit-frame-pointer aesni
gcc -march=k8 -Os -fomit-frame-pointer aesni
gcc -march=nocona -O2 -fomit-frame-pointer aesni
gcc -march=nocona -O3 -fomit-frame-pointer aesni
gcc -march=nocona -O -fomit-frame-pointer aesni
gcc -march=nocona -Os -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: clang -O3 -fomit-frame-pointer
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/include/clang/3.0/include/wmmintrin.h:28:3: error: #error "AES instructions not enabled"
encrypt.c: # error "AES instructions not enabled"
encrypt.c: ^
encrypt.c: encrypt.c:42:25: warning: implicit declaration of function '_mm_aesenc_si128' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^
encrypt.c: encrypt.c:42:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:43:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[4] = _mm_aesenc_si128(state[3],state[4]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:44:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[3] = _mm_aesenc_si128(state[2],state[3]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:45:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[2] = _mm_aesenc_si128(state[1],state[2]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:46:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[1] = _mm_aesenc_si128(state[0],state[1]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:47:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[0] = _mm_aesenc_si128(tmp,state[0]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/aegis256/ref
Compiler: clang -O3 -fomit-frame-pointer
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/aegis256/ref
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
aes.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
aes.c: clang: warning: argument unused during compilation: '-mavx2'
aes.c: clang: warning: argument unused during compilation: '-mpclmul'
encrypt.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mpclmul'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mpclmul'
encrypt.c: In file included from encrypt.c:4:
encrypt.c: In file included from /usr/include/clang/3.0/include/immintrin.h:52:
encrypt.c: In file included from /usr/include/clang/3.0/include/wmmintrin.h:31:
encrypt.c: /usr/include/clang/3.0/include/smmintrin.h:28:2: error: #error "SSE4.1 instruction set not enabled"
encrypt.c: #error "SSE4.1 instruction set not enabled"
encrypt.c: ^
encrypt.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/aegis256/ref
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
aes.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
aes.c: clang: warning: argument unused during compilation: '-mavx2'
aes.c: clang: warning: argument unused during compilation: '-mpclmul'
aes.c: clang: warning: argument unused during compilation: '-fpolly'
aes.c: clang: warning: argument unused during compilation: '-fvectorize'
aes.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
aes.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
encrypt.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mpclmul'
encrypt.c: clang: warning: argument unused during compilation: '-fpolly'
encrypt.c: clang: warning: argument unused during compilation: '-fvectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mpclmul'
encrypt.c: clang: warning: argument unused during compilation: '-fpolly'
encrypt.c: clang: warning: argument unused during compilation: '-fvectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
encrypt.c: In file included from encrypt.c:4:
encrypt.c: In file included from /usr/include/clang/3.0/include/immintrin.h:52:
encrypt.c: In file included from /usr/include/clang/3.0/include/wmmintrin.h:31:
encrypt.c: /usr/include/clang/3.0/include/smmintrin.h:28:2: error: #error "SSE4.1 instruction set not enabled"
encrypt.c: #error "SSE4.1 instruction set not enabled"
encrypt.c: ^
encrypt.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/aegis256/ref
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
aes.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/include/clang/3.0/include/wmmintrin.h:28:3: error: #error "AES instructions not enabled"
encrypt.c: # error "AES instructions not enabled"
encrypt.c: ^
encrypt.c: encrypt.c:42:25: warning: implicit declaration of function '_mm_aesenc_si128' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^
encrypt.c: encrypt.c:42:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:43:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[4] = _mm_aesenc_si128(state[3],state[4]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:44:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[3] = _mm_aesenc_si128(state[2],state[3]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:45:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[2] = _mm_aesenc_si128(state[1],state[2]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:46:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[1] = _mm_aesenc_si128(state[0],state[1]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:47:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[0] = _mm_aesenc_si128(tmp,state[0]);
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/aegis256/ref
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
aes.c: clang: warning: argument unused during compilation: '-mavx2'
aes.c: clang: warning: argument unused during compilation: '-fpolly'
aes.c: clang: warning: argument unused during compilation: '-fvectorize'
aes.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
aes.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-fpolly'
encrypt.c: clang: warning: argument unused during compilation: '-fvectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-fpolly'
encrypt.c: clang: warning: argument unused during compilation: '-fvectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/include/clang/3.0/include/wmmintrin.h:28:3: error: #error "AES instructions not enabled"
encrypt.c: # error "AES instructions not enabled"
encrypt.c: ^
encrypt.c: encrypt.c:42:25: warning: implicit declaration of function '_mm_aesenc_si128' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^
encrypt.c: encrypt.c:42:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:43:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[4] = _mm_aesenc_si128(state[3],state[4]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:44:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[3] = _mm_aesenc_si128(state[2],state[3]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:45:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: state[2] = _mm_aesenc_si128(state[1],state[2]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:46:23: error: assigning to '__m128i' from incompatible type 'int';
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/aegis256/aesni
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.c: In file included from encrypt.c:5:0:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.c: encrypt.c: In function 'aegis256_initialization':
encrypt.c: encrypt.c:42:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:43:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:44:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:45:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:46:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:47:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:56:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:57:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:58:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:59:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:60:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:61:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis256_tag_generation':
encrypt.c: encrypt.c:88:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:89:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:90:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:91:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:92:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:93:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis256_enc_aut_step':
encrypt.c: encrypt.c:127:18: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:128:18: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
encrypt.c: In file included from encrypt.c:5:0:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.c: encrypt.c: In function 'aegis256_initialization':
encrypt.c: encrypt.c:42:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:43:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:44:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:45:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:46:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:47:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:56:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:57:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:58:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:59:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:60:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:61:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis256_tag_generation':
encrypt.c: encrypt.c:88:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:89:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:90:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:91:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:92:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:93:23: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis256_enc_aut_step':
encrypt.c: encrypt.c:127:18: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:128:18: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...

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