Implementation notes: amd64, skylake, crypto_encrypt/ntruees401ep2

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_encrypt
Primitive: ntruees401ep2
TimeImplementationCompilerBenchmark dateSUPERCOP version
122012refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
122950refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
126238refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
127856refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
128336refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
128486refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
129370refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
129376refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
129626refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
129782refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
129788refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
130864refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
135032refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
135156refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
135316refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
135654refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
135768refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
136498refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
136536refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
136682refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
136972refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
140692refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
140900refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
140906refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
141080refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
141204refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
141460refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
150884refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
150910refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
151682refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
151698refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
151774refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
151892refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
152068refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
152232refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
152676refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
153030refgcc -O3 -fomit-frame-pointer2016121720161026
153042refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
153108refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
153192refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
153398refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
157686refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
157792refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
157852refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
157878refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
158862refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
159000refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
159008refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
159170refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
159186refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
159346refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
159586refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
159684refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
162408refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
162596refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
163096refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
163338refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
163874refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
164176refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
164906refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
165574refgcc -O2 -fomit-frame-pointer2016121720161026
165638refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
165706refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
165820refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
165878refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
166658refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
166728refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
166758refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
166820refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
166874refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
166886refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
167088refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
167146refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
167642refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
168076refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
168170refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
168248refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
171708refgcc -m64 -O -fomit-frame-pointer2016121720161026
171828refgcc -O -fomit-frame-pointer2016121720161026
171932refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
172106refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
172424refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
173168refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
173704refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
174714refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
175218refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
176042refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
176326refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
181630refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
181910refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
210992refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
211006refgcc -m64 -Os -fomit-frame-pointer2016121720161026
211142refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
211188refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
211226refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
211416refgcc -Os -fomit-frame-pointer2016121720161026
211482refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
211488refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
211698refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
212048refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
212082refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
212212refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
212332refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
212430refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
212982refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
213032refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
215404refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
215576refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
480948refgcc2016121720161026
483734refcc2016121720161026
484334refgcc -funroll-loops2016121720161026

Compiler output

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