Implementation notes: amd64, skylake, crypto_aead/aes128n12silcv1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: aes128n12silcv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
118238refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
118402refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
118694refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
118928refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
119082refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
119116refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
119230refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
120000refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
120022refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
120048refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
120052refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
120138refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
120410refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
120558refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
120662refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
120676refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
120802refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
121040refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
121062refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
121518refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
121568refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
121678refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
121768refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
122022refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
122194refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
122252refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
122396refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
122398refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
122474refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
122492refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
122508refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
122604refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
122662refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
122744refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
122868refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
123022refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
123078refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
123138refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
123184refgcc -O2 -fomit-frame-pointer2016121620161026
123200refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
123210refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
123304refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
123324refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
123342refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
123354refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
123532refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
123588refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
123634refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
123640refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
123664refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
123812refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
124192refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
124250refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
124380refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
124612refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
124700refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
124754refgcc -O3 -fomit-frame-pointer2016121620161026
124834refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
124844refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
124884refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
125018refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
125134refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
125136refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
125188refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
125260refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
125280refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
125312refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
125688refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
125786refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
125818refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
125830refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
125874refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
126052refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
126062refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
126070refgcc -O -fomit-frame-pointer2016121620161026
126280refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
126470refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
126592refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
126822refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
126942refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
126958refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
127126refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
127172refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
127180refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
127650refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
127680refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
127742refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
127922refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
127942refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
128002refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
128704refgcc -m64 -O -fomit-frame-pointer2016121620161026
128794refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
128884refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
128996refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
129780refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
130554refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
130696refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
130702refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
130710refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
131226refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
131346refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
131552refgcc -m64 -Os -fomit-frame-pointer2016121620161026
131638refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
131702refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
132168refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
132950refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
133154refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
133500refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
133692refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
134820refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
134860refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
134864refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
135096refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
135498refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
136190refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
137336refgcc -Os -fomit-frame-pointer2016121620161026
138038refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
140162refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
310522refcc2016121620161026
311160refgcc2016121620161026
312228refgcc -funroll-loops2016121620161026

Compiler output

Implementation: crypto_aead/aes128n12silcv1/ref
Compiler: cc
silc.c: silc.c: In function 'process_ad':
silc.c: silc.c:39:2: warning: implicit declaration of function 'pstate2' [-Wimplicit-function-declaration]
silc.c: pstate2("processing nonce:", NULL);
silc.c: ^~~~~~~

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

Compiler output

Implementation: crypto_aead/aes128n12silcv1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
silc.c: silc.c:39:2: warning: implicit declaration of function 'pstate2' is invalid in C99 [-Wimplicit-function-declaration]
silc.c: pstate2("processing nonce:", NULL);
silc.c: ^
silc.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/aes128n12silcv1/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
silc.c: silc.c: In function 'process_ad':
silc.c: silc.c:39:2: warning: implicit declaration of function 'pstate2' [-Wimplicit-function-declaration]
silc.c: pstate2("processing nonce:", NULL);
silc.c: ^~~~~~~
silc.c: silc.c: In function 'process_ad':
silc.c: silc.c:39:2: warning: implicit declaration of function 'pstate2' [-Wimplicit-function-declaration]
silc.c: pstate2("processing nonce:", NULL);
silc.c: ^~~~~~~

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