Implementation notes: amd64, skylake, crypto_encrypt/ntruees743ep1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_encrypt
Primitive: ntruees743ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
250932refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
251906refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
252832refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
253060refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
254154refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
254564refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
263328refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
263722refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
265462refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
271024refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
271248refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
274584refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
274788refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
275032refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
277010refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
277454refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
278352refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
278508refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
280154refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
280294refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
280668refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
282938refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
284174refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
287422refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
287524refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
287734refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
287944refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
316714refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
316834refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
317474refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
328380refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
328632refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
328946refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
329314refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
332182refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
332636refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
333456refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
333754refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
334488refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
334768refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
335826refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
335838refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
335878refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
337916refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
338372refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
338464refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
338590refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
338952refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
339150refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
339348refgcc -O3 -fomit-frame-pointer2016121720161026
340472refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
340678refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
340892refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
340976refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
341098refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
341962refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
342244refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
342608refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
347814refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
348034refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
348536refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
349256refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
349398refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
349402refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
349900refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
350196refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
351232refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
351546refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
352338refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
352980refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
353168refgcc -O2 -fomit-frame-pointer2016121720161026
355436refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
355502refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
356276refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
356308refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
357924refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
358128refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
358606refgcc -O -fomit-frame-pointer2016121720161026
359214refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
359252refgcc -m64 -O -fomit-frame-pointer2016121720161026
359700refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
360008refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
365298refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
365682refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
366138refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
367296refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
372750refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
373592refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
376708refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
376830refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
439870refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
439972refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
440008refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
440190refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
440232refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
440242refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
440370refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
440834refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
441076refgcc -Os -fomit-frame-pointer2016121720161026
441146refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
441348refgcc -m64 -Os -fomit-frame-pointer2016121720161026
441536refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
441692refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
441902refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
451574refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
451752refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
452734refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
455808refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
1024158refgcc -funroll-loops2016121720161026
1024472refgcc2016121720161026
1024696refcc2016121720161026

Compiler output

Implementation: crypto_encrypt/ntruees743ep1/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