Implementation notes: amd64, skylake, crypto_aead/trivia128v1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: trivia128v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
212458refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
212472refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
212486refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
212576refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
212668refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
212684refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
212754refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
212766refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
212770refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
216798refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
216954refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
217634refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
217728refgcc -O3 -fomit-frame-pointer2016121720161026
217728refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
218618refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
218688refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
219004refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
219026refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
219034refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
219130refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
219212refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
219608refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
219808refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
220898refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
221452refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
221496refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
221518refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
221912refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
222494refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
222534refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
222622refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
222778refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
223256refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
223398refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
225086refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
225108refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
237138refgcc -O2 -fomit-frame-pointer2016121720161026
237162refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
237178refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
238016refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
238260refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
238302refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
239326refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
239604refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
239866refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
240464refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
240710refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
241880refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
242186refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
242884refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
243016refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
243132refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
243366refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
243368refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
282458refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
282572refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
285766refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
285906refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
286698refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
286928refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
287654refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
287788refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
287810refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
288126refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
289046refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
295746refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
296700refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
300086refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
300126refgcc -m64 -O -fomit-frame-pointer2016121720161026
300588refgcc -O -fomit-frame-pointer2016121720161026
304284refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
304286refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
316472refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
316752refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
316856refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
317086refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
317258refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
317694refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
317744refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
317928refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
318136refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
376592refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
430724refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
430918refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
436028refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
436600refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
436922refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
437176refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
441794refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
441802refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
441894refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
442164refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
442170refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
442210refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
442658refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
444272refgcc -Os -fomit-frame-pointer2016121720161026
444484refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
444550refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
444698refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
444814refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
444838refgcc -m64 -Os -fomit-frame-pointer2016121720161026
445428refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
445450refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
445798refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
447834refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
447902refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
464564refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
465360refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
1793986refgcc2016121720161026
1797098refcc2016121720161026
1797254refgcc -funroll-loops2016121720161026

Compiler output

Implementation: crypto_aead/trivia128v1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:118:12: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
encrypt.c: if((a>gt;>gt;31)&1==1) result = result^(CONST_alpha_32);
encrypt.c: ^~~~~
encrypt.c: encrypt.c:118:12: note: place parentheses around the '==' expression to silence this warning
encrypt.c: if((a>gt;>gt;31)&1==1) result = result^(CONST_alpha_32);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:118:12: note: place parentheses around the & expression to evaluate it first
encrypt.c: if((a>gt;>gt;31)&1==1) result = result^(CONST_alpha_32);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:143:12: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
encrypt.c: if((b>gt;>gt;63)&1==1) result = result^(CONST_beta_64);
encrypt.c: ^~~~~
encrypt.c: encrypt.c:143:12: note: place parentheses around the '==' expression to silence this warning
encrypt.c: if((b>gt;>gt;63)&1==1) result = result^(CONST_beta_64);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:143:12: note: place parentheses around the & expression to evaluate it first
encrypt.c: if((b>gt;>gt;63)&1==1) result = result^(CONST_beta_64);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:178:8: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
encrypt.c: if(b&1==1) result=a;
encrypt.c: ^~~~~
encrypt.c: ...

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