Implementation notes: amd64, skylake, crypto_encrypt/ntruees787ep1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_encrypt
Primitive: ntruees787ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
329112refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
329714refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
373428refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
373460refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
373820refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
378778refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
378858refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
379824refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
379916refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
380596refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
380844refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
400576refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
400852refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
400940refgcc -O3 -fomit-frame-pointer2016121720161026
405842refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
405872refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
406140refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
406202refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
406298refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
406390refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
409164refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
410012refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
410148refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
430600refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
430770refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
430774refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
646558refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
733108refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
733264refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
733658refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
734302refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
734526refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
734884refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
734886refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
735392refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
735906refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
791874refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
792242refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
793280refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
793346refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
808136refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
808274refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
808298refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
808668refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
808784refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
808864refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
811994refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
812216refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
813638refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
814086refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
817488refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
817510refgcc -O2 -fomit-frame-pointer2016121720161026
817758refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
837998refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
838122refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
838552refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
838590refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
838618refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
838630refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
838678refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
838790refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
838998refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
887614refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
900944refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
901392refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
906002refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
922934refgcc -m64 -O -fomit-frame-pointer2016121720161026
923056refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
923178refgcc -O -fomit-frame-pointer2016121720161026
924784refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
924920refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
925910refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
925912refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
926086refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
926166refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
926286refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
927322refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
928676refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
930010refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
930764refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
931424refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
1022892refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
1023248refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
1034004refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
1034056refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
1034224refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
1034322refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
1034418refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
1035614refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
1035640refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
1035720refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
1035996refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
1036544refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
1036692refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
1039838refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
1039902refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
1039912refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
1039942refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
1040194refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
1040196refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
1040714refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
1040720refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
1040742refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
1040782refgcc -m64 -Os -fomit-frame-pointer2016121720161026
1041060refgcc -Os -fomit-frame-pointer2016121720161026
1041998refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
1042130refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
1073426refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
2697422refcc2016121720161026
2698278refgcc -funroll-loops2016121720161026
2698332refgcc2016121720161026

Compiler output

Implementation: crypto_encrypt/ntruees787ep1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
crypto_sha1.c: crypto_sha1.c:85:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: E += RL(A, 5) + K00_19 + (B & (C ^ D) ^ D) + data[ 0]; B = RL(B, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: crypto_sha1.c:85:33: note: place parentheses around the '&' expression to silence this warning
crypto_sha1.c: E += RL(A, 5) + K00_19 + (B & (C ^ D) ^ D) + data[ 0]; B = RL(B, 30);
crypto_sha1.c: ^
crypto_sha1.c: ( )
crypto_sha1.c: crypto_sha1.c:86:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: D += RL(E, 5) + K00_19 + (A & (B ^ C) ^ C) + data[ 1]; A = RL(A, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: crypto_sha1.c:86:33: note: place parentheses around the '&' expression to silence this warning
crypto_sha1.c: D += RL(E, 5) + K00_19 + (A & (B ^ C) ^ C) + data[ 1]; A = RL(A, 30);
crypto_sha1.c: ^
crypto_sha1.c: ( )
crypto_sha1.c: crypto_sha1.c:87:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: C += RL(D, 5) + K00_19 + (E & (A ^ B) ^ B) + data[ 2]; E = RL(E, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: crypto_sha1.c:87:33: note: place parentheses around the '&' expression to silence this warning
crypto_sha1.c: C += RL(D, 5) + K00_19 + (E & (A ^ B) ^ B) + data[ 2]; E = RL(E, 30);
crypto_sha1.c: ^
crypto_sha1.c: ( )
crypto_sha1.c: crypto_sha1.c:88:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: B += RL(C, 5) + K00_19 + (D & (E ^ A) ^ A) + data[ 3]; D = RL(D, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: crypto_sha1.c:88:33: note: place parentheses around the '&' expression to silence this warning
crypto_sha1.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