Implementation notes: amd64, rumba5, crypto_encrypt/ntruees743ep1

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20181216
Operation: crypto_encrypt
Primitive: ntruees743ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
232064refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018091720180818
235424refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018091720180818
236992refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018091720180818
238208refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018091720180818
238816refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018091720180818
238848refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018091720180818
239360refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018091720180818
239936refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018091720180818
241088refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018091720180818
241504refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018091720180818
242976refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018091720180818
245376refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018091720180818
249440refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018091720180818
249888refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018091720180818
250176refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018091720180818
252704refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018091720180818
253024refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018091720180818
253920refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018091720180818
254208refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018091720180818
259040refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018091720180818
259520refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018091720180818
261088refgcc -m64 -march=core2 -O -fomit-frame-pointer2018091720180818
262272refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018091720180818
262656refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018091720180818
262976refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018091720180818
263328refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018091720180818
264160refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018091720180818
281888refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018091720180818
282080refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018091720180818
282208refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018091720180818
283840refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018091720180818
286560refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018091720180818
287104refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018091720180818
287296refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018091720180818
287360refgcc -funroll-loops -O3 -fomit-frame-pointer2018091720180818
288096refgcc -march=barcelona -O3 -fomit-frame-pointer2018091720180818
291232refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018091720180818
293152refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018091720180818
295616refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018091720180818
296096refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018091720180818
298624refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018091720180818
299296refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018091720180818
299840refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018091720180818
300384refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018091720180818
300544refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018091720180818
300864refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018091720180818
300928refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018091720180818
301376refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018091720180818
301504refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018091720180818
301536refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018091720180818
301536refgcc -m64 -O3 -fomit-frame-pointer2018091720180818
301568refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018091720180818
301856refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018091720180818
301984refgcc -O3 -fomit-frame-pointer2018091720180818
302432refgcc -funroll-loops -O2 -fomit-frame-pointer2018091720180818
302912refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018091720180818
303936refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018091720180818
305408refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018091720180818
305504refgcc -funroll-loops -O -fomit-frame-pointer2018091720180818
305536refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018091720180818
307776refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018091720180818
307968refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018091720180818
310080refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018091720180818
310816refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018091720180818
311104refgcc -march=k8 -O3 -fomit-frame-pointer2018091720180818
311232refgcc -march=nocona -O3 -fomit-frame-pointer2018091720180818
311808refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018091720180818
312608refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018091720180818
314176refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018091720180818
314656refgcc -march=barcelona -O2 -fomit-frame-pointer2018091720180818
314912refgcc -march=k8 -O2 -fomit-frame-pointer2018091720180818
315072refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018091720180818
315232refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018091720180818
315360refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018091720180818
322208refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018091720180818
322816refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018091720180818
323328refgcc -m64 -O2 -fomit-frame-pointer2018091720180818
324064refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018091720180818
324096refgcc -O2 -fomit-frame-pointer2018091720180818
333792refgcc -march=barcelona -O -fomit-frame-pointer2018091720180818
334272refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018091720180818
334304refgcc -fno-schedule-insns -O -fomit-frame-pointer2018091720180818
334368refgcc -m64 -O -fomit-frame-pointer2018091720180818
335904refgcc -O -fomit-frame-pointer2018091720180818
340288refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018091720180818
340640refgcc -march=nocona -O2 -fomit-frame-pointer2018091720180818
343360refgcc -march=k8 -O -fomit-frame-pointer2018091720180818
343552refgcc -m64 -march=k8 -O -fomit-frame-pointer2018091720180818
353408refgcc -m64 -march=nocona -O -fomit-frame-pointer2018091720180818
353792refgcc -march=nocona -O -fomit-frame-pointer2018091720180818
385248refgcc -march=nocona -Os -fomit-frame-pointer2018091720180818
385632refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018091720180818
390496refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018091720180818
390688refgcc -funroll-loops -Os -fomit-frame-pointer2018091720180818
390688refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018091720180818
391072refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018091720180818
391264refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018091720180818
391488refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018091720180818
391648refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018091720180818
393504refgcc -march=barcelona -Os -fomit-frame-pointer2018091720180818
394368refgcc -march=k8 -Os -fomit-frame-pointer2018091720180818
394560refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018091720180818
394848refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018091720180818
394880refgcc -m64 -Os -fomit-frame-pointer2018091720180818
394944refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018091720180818
395328refgcc -Os -fomit-frame-pointer2018091720180818
397696refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018091720180818
397760refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018091720180818
1191360refgcc2018091720180818
1192256refcc2018091720180818
1194688refgcc -funroll-loops2018091720180818

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