Implementation notes: amd64, enigma, crypto_aead/aegis128

Computer: enigma
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20140529
Operation: crypto_aead
Primitive: aegis128
TimeImplementationCompilerBenchmark dateSUPERCOP version
91611refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014060120140529
91638refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014060120140529
91647refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014060120140529
91656refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014060120140529
91701refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014060120140529
91710refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014060120140529
91710refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014060120140529
91710refgcc -march=nocona -Os -fomit-frame-pointer2014060120140529
91719refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014060120140529
91728refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014060120140529
91773refgcc -funroll-loops -Os -fomit-frame-pointer2014060120140529
91791refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014060120140529
91791refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014060120140529
91818refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014060120140529
91854refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014060120140529
91863refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014060120140529
91872refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014060120140529
91872refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014060120140529
91872refgcc -march=k8 -Os -fomit-frame-pointer2014060120140529
91881refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014060120140529
91899refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014060120140529
91908refgcc -Os -fomit-frame-pointer2014060120140529
91926refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014060120140529
91935refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014060120140529
91935refgcc -m64 -Os -fomit-frame-pointer2014060120140529
91935refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014060120140529
91962refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014060120140529
91971refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014060120140529
92043refgcc -m64 -march=nocona -O -fomit-frame-pointer2014060120140529
92052refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014060120140529
92052refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014060120140529
92079refgcc -march=barcelona -O -fomit-frame-pointer2014060120140529
92115refgcc -funroll-loops -O -fomit-frame-pointer2014060120140529
92115refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014060120140529
92151refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014060120140529
92151refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014060120140529
92169refgcc -march=k8 -O -fomit-frame-pointer2014060120140529
92187refgcc -m64 -march=core2 -O -fomit-frame-pointer2014060120140529
92196refgcc -march=nocona -O -fomit-frame-pointer2014060120140529
92232refgcc -m64 -march=k8 -O -fomit-frame-pointer2014060120140529
92241refgcc -O -fomit-frame-pointer2014060120140529
92241refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014060120140529
92295refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014060120140529
92385refgcc -fno-schedule-insns -O -fomit-frame-pointer2014060120140529
92529refgcc -m64 -O -fomit-frame-pointer2014060120140529
93600refgcc -march=barcelona -Os -fomit-frame-pointer2014060120140529
94014refgcc -funroll-loops -O3 -fomit-frame-pointer2014060120140529
94014refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014060120140529
94068refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014060120140529
94311refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014060120140529
94482refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014060120140529
94500refgcc -funroll-loops -O2 -fomit-frame-pointer2014060120140529
94545refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014060120140529
94662refgcc -O3 -fomit-frame-pointer2014060120140529
94689refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014060120140529
94725refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014060120140529
94743refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014060120140529
94743refgcc -m64 -O3 -fomit-frame-pointer2014060120140529
94743refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014060120140529
94788refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014060120140529
94788refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014060120140529
94797refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014060120140529
94896refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014060120140529
94932refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014060120140529
94941refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014060120140529
94950refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014060120140529
94986refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014060120140529
95004refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014060120140529
95013refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014060120140529
95013refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014060120140529
95022refgcc -march=barcelona -O3 -fomit-frame-pointer2014060120140529
95031refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014060120140529
95040refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014060120140529
95040refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014060120140529
95049refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014060120140529
95058refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014060120140529
95085refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014060120140529
95103refgcc -march=k8 -O3 -fomit-frame-pointer2014060120140529
95130refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014060120140529
95139refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014060120140529
95229refgcc -m64 -O2 -fomit-frame-pointer2014060120140529
95337refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014060120140529
95346refgcc -O2 -fomit-frame-pointer2014060120140529
95481refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014060120140529
95481refgcc -march=k8 -O2 -fomit-frame-pointer2014060120140529
95490refgcc -march=barcelona -O2 -fomit-frame-pointer2014060120140529
95499refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014060120140529
95526refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014060120140529
95589refgcc -march=nocona -O3 -fomit-frame-pointer2014060120140529
95652refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014060120140529
95688refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014060120140529
95724refgcc -march=nocona -O2 -fomit-frame-pointer2014060120140529
191052refgcc2014060120140529
191151refgcc -funroll-loops2014060120140529
191457refcc2014060120140529

Compiler output

Implementation: crypto_aead/aegis128/aesni
Compiler: cc
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.c: encrypt.c: In function 'aegis128_initialization':
encrypt.c: encrypt.c:34: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:35: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:36: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:37: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:38: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis128_tag_generation':
encrypt.c: encrypt.c:67: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
encrypt.c: encrypt.c:105: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:106: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:107: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:108: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis128_dec_aut_step':
encrypt.c: encrypt.c:130: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:131: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:132: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:133: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:134: error: incompatible types when assigning to type '__m128i' from type 'int'

Number of similar (compiler,implementation) pairs: 87, 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=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/aegis128/aesni
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.c: encrypt.c: In function 'aegis128_initialization':
encrypt.c: encrypt.c:34: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:35: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:36: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:37: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:38: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis128_tag_generation':
encrypt.c: encrypt.c:67: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
encrypt.c: encrypt.c:105: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:106: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:107: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:108: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis128_dec_aut_step':
encrypt.c: encrypt.c:130: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:131: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:132: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:133: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:134: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.c: encrypt.c: In function 'aegis128_initialization':
encrypt.c: encrypt.c:34: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:35: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:36: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:37: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:38: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis128_tag_generation':
encrypt.c: encrypt.c:67: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
encrypt.c: encrypt.c:105: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:106: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:107: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:108: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c: In function 'aegis128_dec_aut_step':
encrypt.c: encrypt.c:130: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:131: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:132: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:133: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:134: error: incompatible types when assigning to type '__m128i' from type 'int'

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