Implementation notes: amd64, rumba5, crypto_encrypt/ntruees593ep1

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20181216
Operation: crypto_encrypt
Primitive: ntruees593ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
186112refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018091720180818
190176refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018091720180818
190720refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018091720180818
191136refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018091720180818
191360refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018091720180818
191392refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018091720180818
191712refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018091720180818
192064refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018091720180818
192128refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018091720180818
192928refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018091720180818
194592refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018091720180818
197120refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018091720180818
200192refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018091720180818
201824refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018091720180818
202080refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018091720180818
203264refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018091720180818
205152refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018091720180818
208864refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018091720180818
208928refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018091720180818
209344refgcc -m64 -march=core2 -O -fomit-frame-pointer2018091720180818
209728refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018091720180818
209888refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018091720180818
210656refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018091720180818
211552refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018091720180818
211776refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018091720180818
218944refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018091720180818
219328refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018091720180818
219520refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018091720180818
220192refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018091720180818
220384refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018091720180818
220736refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018091720180818
221632refgcc -march=barcelona -O3 -fomit-frame-pointer2018091720180818
222912refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018091720180818
222944refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018091720180818
223168refgcc -funroll-loops -O3 -fomit-frame-pointer2018091720180818
223488refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018091720180818
226752refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018091720180818
228256refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018091720180818
232352refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018091720180818
232384refgcc -O3 -fomit-frame-pointer2018091720180818
232832refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018091720180818
233760refgcc -march=k8 -O3 -fomit-frame-pointer2018091720180818
234144refgcc -m64 -O3 -fomit-frame-pointer2018091720180818
234784refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018091720180818
235264refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018091720180818
235296refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018091720180818
235456refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018091720180818
236448refgcc -funroll-loops -O2 -fomit-frame-pointer2018091720180818
236960refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018091720180818
237056refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018091720180818
237376refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018091720180818
237856refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018091720180818
238560refgcc -funroll-loops -O -fomit-frame-pointer2018091720180818
238592refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018091720180818
238816refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018091720180818
239424refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018091720180818
239488refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018091720180818
239488refgcc -march=nocona -O3 -fomit-frame-pointer2018091720180818
240288refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018091720180818
240512refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018091720180818
240800refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018091720180818
241184refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018091720180818
241376refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018091720180818
241440refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018091720180818
241952refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018091720180818
242432refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018091720180818
242784refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018091720180818
242880refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018091720180818
244736refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018091720180818
244832refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018091720180818
245536refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018091720180818
246560refgcc -march=barcelona -O2 -fomit-frame-pointer2018091720180818
246848refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018091720180818
247104refgcc -march=k8 -O2 -fomit-frame-pointer2018091720180818
249888refgcc -m64 -O2 -fomit-frame-pointer2018091720180818
250048refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018091720180818
250304refgcc -O2 -fomit-frame-pointer2018091720180818
251360refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018091720180818
252256refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018091720180818
255232refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018091720180818
255296refgcc -march=barcelona -O -fomit-frame-pointer2018091720180818
258048refgcc -fno-schedule-insns -O -fomit-frame-pointer2018091720180818
258336refgcc -m64 -O -fomit-frame-pointer2018091720180818
258720refgcc -O -fomit-frame-pointer2018091720180818
263872refgcc -march=nocona -O2 -fomit-frame-pointer2018091720180818
264576refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018091720180818
269280refgcc -m64 -march=k8 -O -fomit-frame-pointer2018091720180818
269664refgcc -march=k8 -O -fomit-frame-pointer2018091720180818
273984refgcc -m64 -march=nocona -O -fomit-frame-pointer2018091720180818
274112refgcc -march=nocona -O -fomit-frame-pointer2018091720180818
300800refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018091720180818
301088refgcc -march=nocona -Os -fomit-frame-pointer2018091720180818
303296refgcc -Os -fomit-frame-pointer2018091720180818
303296refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018091720180818
303328refgcc -march=k8 -Os -fomit-frame-pointer2018091720180818
303520refgcc -march=barcelona -Os -fomit-frame-pointer2018091720180818
303776refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018091720180818
303872refgcc -m64 -Os -fomit-frame-pointer2018091720180818
303904refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018091720180818
304064refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018091720180818
304064refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018091720180818
304288refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018091720180818
304384refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018091720180818
304640refgcc -funroll-loops -Os -fomit-frame-pointer2018091720180818
304928refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018091720180818
305184refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018091720180818
308672refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018091720180818
308736refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018091720180818
866592refgcc2018091720180818
867424refgcc -funroll-loops2018091720180818
874304refcc2018091720180818

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