Implementation notes: amd64, h5nano, crypto_aead/aegis256

Computer: h5nano
Architecture: amd64
CPU ID: CentaurHauls-000006f8-afc9fbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: aegis256
TimeImplementationCompilerBenchmark dateSUPERCOP version
137460refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014070220140622
137475refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014070220140622
137490refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014070220140622
137535refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014070220140622
137580refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014070220140622
137760refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014070220140622
137780refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014070220140622
137810refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014070220140622
137955refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014070220140622
137955refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014070220140622
137975refgcc -funroll-loops -O3 -fomit-frame-pointer2014070220140622
138010refgcc -funroll-loops -O2 -fomit-frame-pointer2014070220140622
138035refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014070220140622
138040refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014070220140622
146245refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014070220140622
146245refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014070220140622
146250refgcc -funroll-loops -Os -fomit-frame-pointer2014070220140622
146270refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014070220140622
146285refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014070220140622
146655refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014070220140622
146720refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014070220140622
147995refgcc -march=k8 -O3 -fomit-frame-pointer2014070220140622
148030refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014070220140622
148070refgcc -march=k8 -O2 -fomit-frame-pointer2014070220140622
148075refgcc -m64 -O2 -fomit-frame-pointer2014070220140622
148090refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014070220140622
148095refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014070220140622
148100refgcc -O2 -fomit-frame-pointer2014070220140622
148115refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014070220140622
148140refgcc -march=barcelona -O2 -fomit-frame-pointer2014070220140622
148365refgcc -O3 -fomit-frame-pointer2014070220140622
148400refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014070220140622
148410refgcc -march=barcelona -O3 -fomit-frame-pointer2014070220140622
148425refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014070220140622
148670refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014070220140622
148685refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014070220140622
148695refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014070220140622
148700refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014070220140622
148715refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014070220140622
148725refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2014070220140622
148765refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014070220140622
148765refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014070220140622
148775refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014070220140622
148800refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014070220140622
149075refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014070220140622
150620refgcc -m64 -O3 -fomit-frame-pointer2014070220140622
151025refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014070220140622
151045refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014070220140622
151045refgcc -march=nocona -O3 -fomit-frame-pointer2014070220140622
151050refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014070220140622
151065refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014070220140622
151080refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014070220140622
151135refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014070220140622
151135refgcc -march=nocona -O2 -fomit-frame-pointer2014070220140622
152340refgcc -m64 -march=core2 -O -fomit-frame-pointer2014070220140622
152340refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014070220140622
152340refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014070220140622
152365refgcc -O -fomit-frame-pointer2014070220140622
152365refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014070220140622
152365refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014070220140622
152370refgcc -m64 -march=nocona -O -fomit-frame-pointer2014070220140622
152370refgcc -march=nocona -O -fomit-frame-pointer2014070220140622
152390refgcc -fno-schedule-insns -O -fomit-frame-pointer2014070220140622
152415refgcc -m64 -O -fomit-frame-pointer2014070220140622
152430refgcc -m64 -march=k8 -O -fomit-frame-pointer2014070220140622
152455refgcc -march=barcelona -O -fomit-frame-pointer2014070220140622
152455refgcc -march=k8 -O -fomit-frame-pointer2014070220140622
152475refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014070220140622
153025refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014070220140622
153025refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014070220140622
153030refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014070220140622
153030refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014070220140622
153035refgcc -funroll-loops -O -fomit-frame-pointer2014070220140622
153035refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014070220140622
153055refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014070220140622
153055refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014070220140622
155010refgcc -Os -fomit-frame-pointer2014070220140622
155115refgcc -m64 -Os -fomit-frame-pointer2014070220140622
155115refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014070220140622
155125refgcc -march=k8 -Os -fomit-frame-pointer2014070220140622
155145refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014070220140622
155185refgcc -march=barcelona -Os -fomit-frame-pointer2014070220140622
155295refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014070220140622
158835refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014070220140622
158840refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014070220140622
158850refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014070220140622
158850refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014070220140622
158885refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014070220140622
159835refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014070220140622
159835refgcc -march=nocona -Os -fomit-frame-pointer2014070220140622
159855refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014070220140622
159875refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014070220140622
379310refgcc2014070220140622
379385refcc2014070220140622
379480refgcc -funroll-loops2014070220140622

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: 91, 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 -O3 -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 -O3 -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 -O3 -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