Implementation notes: amd64, skylake, crypto_encrypt/ntruees593ep1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_encrypt
Primitive: ntruees593ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
204834refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
205140refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
207232refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
207466refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
207628refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
209262refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
216230refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
216530refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
217574refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
221394refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
221830refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
223688refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
224842refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
225598refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
225738refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
225770refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
225898refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
228824refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
229806refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
230210refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
230744refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
232292refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
232300refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
235108refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
235280refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
235914refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
235978refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
257620refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
258062refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
258328refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
260724refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
260844refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
261294refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
261466refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
261558refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
261682refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
262188refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
262192refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
263218refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
263234refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
263560refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
264408refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
264588refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
264722refgcc -O3 -fomit-frame-pointer2016121720161026
266536refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
266688refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
266824refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
266860refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
267134refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
267168refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
267516refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
267816refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
267968refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
268468refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
268824refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
269232refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
269370refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
269818refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
270598refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
270944refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
272050refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
272212refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
272898refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
273344refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
274002refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
274258refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
276514refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
276772refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
277456refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
277604refgcc -O2 -fomit-frame-pointer2016121720161026
277908refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
279180refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
279244refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
279278refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
279284refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
279602refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
279720refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
283006refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
283054refgcc -O -fomit-frame-pointer2016121720161026
283158refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
283254refgcc -m64 -O -fomit-frame-pointer2016121720161026
283830refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
287266refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
287534refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
288320refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
289052refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
293760refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
293802refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
296838refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
297114refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
341956refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
341982refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
342036refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
342122refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
342168refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
342256refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
342346refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
342578refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
342968refgcc -Os -fomit-frame-pointer2016121720161026
342984refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
342994refgcc -m64 -Os -fomit-frame-pointer2016121720161026
343018refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
343070refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
343088refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
348714refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
349206refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
350896refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
351590refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
758674refcc2016121720161026
758678refgcc -funroll-loops2016121720161026
760388refgcc2016121720161026

Compiler output

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