Implementation notes: amd64, skylake, crypto_aead/aes128n8silcv1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: aes128n8silcv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
118210refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
118752refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
118758refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
119310refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
119376refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
119940refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
120088refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
120280refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
120460refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
120736refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
120742refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
120882refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
121262refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
121264refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
121324refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
121580refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
121652refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
121668refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
121772refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
121790refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
121812refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
121936refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
121936refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
122036refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
122046refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
122060refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
122112refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
122192refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
122486refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
122516refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
122546refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
122588refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
122680refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
122744refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
122918refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
122988refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
123156refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
123166refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
123292refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
123296refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
123444refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
123652refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
123770refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
123888refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
123964refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
123982refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
124004refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
124100refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
124114refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
124128refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
124138refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
124182refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
124202refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
124492refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
124496refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
124754refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
124818refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
124992refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
125042refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
125090refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
125144refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
125154refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
125258refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
125258refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
125352refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
125394refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
125412refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
125590refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
125594refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
125608refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
125962refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
126134refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
126458refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
126794refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
127036refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
127080refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
127524refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
127710refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
127734refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
127854refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
127908refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
128178refgcc -O2 -fomit-frame-pointer2016121620161026
128400refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
128452refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
128860refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
128880refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
129044refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
129200refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
129440refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
129552refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
129766refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
129948refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
129956refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
129988refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
130226refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
130696refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
130922refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
131010refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
131136refgcc -O3 -fomit-frame-pointer2016121620161026
131186refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
131188refgcc -Os -fomit-frame-pointer2016121620161026
131272refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
131766refgcc -m64 -Os -fomit-frame-pointer2016121620161026
131958refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
132048refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
132154refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
132784refgcc -O -fomit-frame-pointer2016121620161026
133100refgcc -m64 -O -fomit-frame-pointer2016121620161026
133392refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
133606refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
135370refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
136278refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
136658refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
137040refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
137420refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
137452refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
138782refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
143652refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
310150refcc2016121620161026
311744refgcc2016121620161026
316518refgcc -funroll-loops2016121620161026

Compiler output

Implementation: crypto_aead/aes128n8silcv1/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/aes128n8silcv1/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/aes128n8silcv1/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