Implementation notes: amd64, enigma, crypto_aead/aegis256

Computer: enigma
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20140529
Operation: crypto_aead
Primitive: aegis256
TimeImplementationCompilerBenchmark dateSUPERCOP version
111267refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014060120140529
111366refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014060120140529
111384refgcc -funroll-loops -Os -fomit-frame-pointer2014060120140529
111420refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014060120140529
111429refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014060120140529
111429refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014060120140529
111447refgcc -march=nocona -Os -fomit-frame-pointer2014060120140529
111456refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014060120140529
111528refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014060120140529
111528refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014060120140529
111546refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014060120140529
111555refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014060120140529
111564refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014060120140529
111573refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014060120140529
111573refgcc -m64 -Os -fomit-frame-pointer2014060120140529
111582refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014060120140529
111582refgcc -march=k8 -Os -fomit-frame-pointer2014060120140529
111645refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014060120140529
111645refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014060120140529
111654refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014060120140529
111699refgcc -Os -fomit-frame-pointer2014060120140529
111726refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014060120140529
111762refgcc -march=barcelona -Os -fomit-frame-pointer2014060120140529
115488refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014060120140529
115488refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014060120140529
115497refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014060120140529
115506refgcc -march=k8 -O2 -fomit-frame-pointer2014060120140529
115524refgcc -march=barcelona -O2 -fomit-frame-pointer2014060120140529
115533refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014060120140529
115578refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014060120140529
115623refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014060120140529
115632refgcc -O2 -fomit-frame-pointer2014060120140529
115677refgcc -m64 -O2 -fomit-frame-pointer2014060120140529
115695refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014060120140529
115740refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014060120140529
116109refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014060120140529
116118refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014060120140529
116154refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014060120140529
116163refgcc -funroll-loops -O3 -fomit-frame-pointer2014060120140529
116190refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014060120140529
116199refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014060120140529
116208refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014060120140529
116244refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014060120140529
116253refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014060120140529
116262refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014060120140529
116262refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014060120140529
116280refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014060120140529
116289refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014060120140529
116298refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014060120140529
116298refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014060120140529
116307refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014060120140529
116307refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014060120140529
116343refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014060120140529
116343refgcc -march=barcelona -O3 -fomit-frame-pointer2014060120140529
116397refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014060120140529
116415refgcc -funroll-loops -O2 -fomit-frame-pointer2014060120140529
116442refgcc -march=k8 -O3 -fomit-frame-pointer2014060120140529
116478refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014060120140529
116496refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014060120140529
116523refgcc -O3 -fomit-frame-pointer2014060120140529
116532refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014060120140529
116604refgcc -m64 -O3 -fomit-frame-pointer2014060120140529
116613refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014060120140529
116667refgcc -march=nocona -O3 -fomit-frame-pointer2014060120140529
116685refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014060120140529
116703refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014060120140529
116712refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014060120140529
116730refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014060120140529
116739refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014060120140529
116775refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014060120140529
116829refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014060120140529
116847refgcc -funroll-loops -O -fomit-frame-pointer2014060120140529
116865refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014060120140529
116892refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014060120140529
116901refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014060120140529
116991refgcc -march=nocona -O2 -fomit-frame-pointer2014060120140529
117018refgcc -m64 -march=core2 -O -fomit-frame-pointer2014060120140529
117045refgcc -m64 -O -fomit-frame-pointer2014060120140529
117045refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014060120140529
117090refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014060120140529
117090refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014060120140529
117099refgcc -O -fomit-frame-pointer2014060120140529
117099refgcc -m64 -march=nocona -O -fomit-frame-pointer2014060120140529
117117refgcc -fno-schedule-insns -O -fomit-frame-pointer2014060120140529
117117refgcc -m64 -march=k8 -O -fomit-frame-pointer2014060120140529
117135refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014060120140529
117153refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014060120140529
117171refgcc -march=nocona -O -fomit-frame-pointer2014060120140529
117198refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014060120140529
117198refgcc -march=barcelona -O -fomit-frame-pointer2014060120140529
117207refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014060120140529
117558refgcc -march=k8 -O -fomit-frame-pointer2014060120140529
233100refcc2014060120140529
233640refgcc2014060120140529
233667refgcc -funroll-loops2014060120140529

Compiler output

Implementation: crypto_aead/aegis256/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 'aegis256_initialization':
encrypt.c: encrypt.c:42: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:43: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:44: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:45: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:46: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:47: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:56: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
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: In function 'aegis256_dec_aut_step':
encrypt.c: encrypt.c:155: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:156: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:157: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:158: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:159: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:160: 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/aegis256/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 'aegis256_initialization':
encrypt.c: encrypt.c:42: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:43: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:44: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:45: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:46: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:47: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:56: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
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: In function 'aegis256_dec_aut_step':
encrypt.c: encrypt.c:155: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:156: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:157: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:158: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:159: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:160: 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 'aegis256_initialization':
encrypt.c: encrypt.c:42: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:43: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:44: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:45: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:46: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:47: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:56: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
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: In function 'aegis256_dec_aut_step':
encrypt.c: encrypt.c:155: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:156: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:157: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:158: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:159: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:160: 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