Implementation notes: amd64, bigmem, crypto_aead/aegis256

Computer: bigmem
Architecture: amd64
CPU ID: GenuineIntel-000206e6-bfebfbff
SUPERCOP version: 20141124
Operation: crypto_aead
Primitive: aegis256
TimeImplementationCompilerBenchmark dateSUPERCOP version
94370refgcc -m64 -march=k8 -Os -fomit-frame-pointer2015021520141124
94387refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2015021520141124
94406refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2015021520141124
94429refgcc -m64 -Os -fomit-frame-pointer2015021520141124
94449refgcc -march=k8 -Os -fomit-frame-pointer2015021520141124
94472refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2015021520141124
94489refgcc -Os -fomit-frame-pointer2015021520141124
94489refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2015021520141124
94492refgcc -funroll-loops -Os -fomit-frame-pointer2015021520141124
94503refgcc -fno-schedule-insns -Os -fomit-frame-pointer2015021520141124
94605refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2015021520141124
94619refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2015021520141124
94622refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2015021520141124
94673refgcc -m64 -march=core2 -Os -fomit-frame-pointer2015021520141124
94707refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2015021520141124
94716refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2015021520141124
94721refgcc -march=barcelona -Os -fomit-frame-pointer2015021520141124
94738refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2015021520141124
94789refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2015021520141124
94800refgcc -m64 -march=nocona -Os -fomit-frame-pointer2015021520141124
94834refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2015021520141124
94877refgcc -march=nocona -Os -fomit-frame-pointer2015021520141124
98747refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2015021520141124
98781refgcc -m64 -O2 -fomit-frame-pointer2015021520141124
98807refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2015021520141124
98838refgcc -march=k8 -O2 -fomit-frame-pointer2015021520141124
98872refgcc -march=barcelona -O2 -fomit-frame-pointer2015021520141124
98923refgcc -O2 -fomit-frame-pointer2015021520141124
98986refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2015021520141124
99266refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2015021520141124
99291refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2015021520141124
99294refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2015021520141124
99294refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2015021520141124
99331refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2015021520141124
99348refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2015021520141124
99376refgcc -funroll-loops -O2 -fomit-frame-pointer2015021520141124
99388refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2015021520141124
99388refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2015021520141124
99393refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2015021520141124
99422refgcc -march=nocona -O2 -fomit-frame-pointer2015021520141124
99425refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2015021520141124
99433refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2015021520141124
99441refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2015021520141124
99453refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2015021520141124
99538refgcc -funroll-loops -O3 -fomit-frame-pointer2015021520141124
99645refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2015021520141124
99657refgcc -funroll-loops -O -fomit-frame-pointer2015021520141124
99677refgcc -m64 -march=core2 -O -fomit-frame-pointer2015021520141124
99694refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2015021520141124
99719refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2015021520141124
99736refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2015021520141124
99739refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2015021520141124
99742refgcc -march=nocona -O3 -fomit-frame-pointer2015021520141124
99744refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2015021520141124
99767refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2015021520141124
99767refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2015021520141124
99801refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2015021520141124
99818refgcc -funroll-loops -m64 -O -fomit-frame-pointer2015021520141124
99835refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2015021520141124
99841refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2015021520141124
99841refgcc -march=nocona -O -fomit-frame-pointer2015021520141124
99852refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2015021520141124
99884refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2015021520141124
99889refgcc -m64 -march=nocona -O -fomit-frame-pointer2015021520141124
99909refgcc -O -fomit-frame-pointer2015021520141124
99915refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2015021520141124
99923refgcc -fno-schedule-insns -O -fomit-frame-pointer2015021520141124
99957refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2015021520141124
99960refgcc -march=k8 -O -fomit-frame-pointer2015021520141124
99977refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2015021520141124
100051refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2015021520141124
100096refgcc -m64 -march=barcelona -O -fomit-frame-pointer2015021520141124
100099refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2015021520141124
100113refgcc -march=barcelona -O -fomit-frame-pointer2015021520141124
100130refgcc -m64 -march=k8 -O -fomit-frame-pointer2015021520141124
100138refgcc -m64 -O -fomit-frame-pointer2015021520141124
100172refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2015021520141124
100294refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2015021520141124
100399refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2015021520141124
100510refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2015021520141124
100586refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2015021520141124
100606refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2015021520141124
100634refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2015021520141124
100716refgcc -march=barcelona -O3 -fomit-frame-pointer2015021520141124
100816refgcc -m64 -O3 -fomit-frame-pointer2015021520141124
100929refgcc -O3 -fomit-frame-pointer2015021520141124
100957refgcc -march=k8 -O3 -fomit-frame-pointer2015021520141124
100983refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2015021520141124
197112refgcc -funroll-loops2015021520141124
197140refgcc2015021520141124
197152refcc2015021520141124

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:57: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:58: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:59: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:60: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:61: 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: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:89: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:90: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:91: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:92: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:93: 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: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:128: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...

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:57: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:58: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:59: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:60: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:61: 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: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:89: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:90: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:91: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:92: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:93: 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: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:128: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: ...
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:57: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:58: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:59: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:60: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:61: 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: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:89: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:90: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:91: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:92: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:93: 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: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: encrypt.c:128: 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