Implementation notes: amd64, cryptothinkx, crypto_encrypt/ntruees593ep1

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_encrypt
Primitive: ntruees593ep1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
181215? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017021620170105
181296? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
183021? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017021620170105
184449? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017021620170105
185958? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017021620170105
190236? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
194025? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017021620170105
194913? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017021620170105
195336? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017021620170105
195801? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
197433? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2017021620170105
198177? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017021620170105
198780? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017021620170105
198891? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017021620170105
199083? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017021620170105
199608? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017021620170105
199614? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017021620170105
199680? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017021620170105
199917? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017021620170105
200535? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017021620170105
200871? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017021620170105
210669? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017021620170105
210840? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017021620170105
211032? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017021620170105
211647? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017021620170105
211887? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017021620170105
214242? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017021620170105
215307? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017021620170105
215436? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017021620170105
216126? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017021620170105
222294? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017021620170105
225696? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017021620170105
233757? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017021620170105
233796? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
233826? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
234009? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017021620170105
234024? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
234324? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017021620170105
234402? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
236946? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
237225? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
237789? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
238026? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017021620170105
238131? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
238374? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017021620170105
238572? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
238767? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
238974? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017021620170105
239406? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
240663? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017021620170105
241809? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017021620170105
243108? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017021620170105
243891? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
243992? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017021620170105
244065? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
245073? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017021620170105
245139? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017021620170105
245712? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
246081? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
246138? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
246219? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
246339? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
246792? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017021620170105
247026? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017021620170105
247284? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
247500? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017021620170105
247794? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017021620170105
248424? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017021620170105
248601? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017021620170105
249228? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
249387? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017021620170105
252555? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
257787? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017021620170105
259488? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017021620170105
259536? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
260001? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
260022? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017021620170105
260091? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
260202? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
261750? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
262218? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017021620170105
263352? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
264330? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
265782? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
266586? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
266664? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017021620170105
267468? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
267540? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
269916? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017021620170105
270072? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
270186? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017021620170105
270396? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017021620170105
270534? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017021620170105
277041? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
278031? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017021620170105
279258? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
279804? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
284740? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017021620170105
292041? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
297501? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
297873? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017021620170105
297906? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
297960? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017021620170105
299013? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
300600? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
303006? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
303105? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
303177? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017021620170105
303357? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
303702? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
305706? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017021620170105
312345? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
318675? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
318777? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
319962? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
327243? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017021620170105
327330? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
331344? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
333090? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017021620170105
338616? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
346479? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017021620170105
363976? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
709152? ? ?? ? ?refgcc_-funroll-loops2017021620170105
732627? ? ?? ? ?refgcc2017021620170105
824793? ? ?? ? ?refcc2017021620170105

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: ^
ntru_crypto_sha1.c: ( )
ntru_crypto_sha1.c: ntru_crypto_sha1.c:111:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
ntru_crypto_sha1.c: A += RL(B, 5) + K00_19 + (C & (D ^ E) ^ E) + w[ 3]; C = RL(C, 30);
ntru_crypto_sha1.c: ~~^~~~~~~~~ ~
ntru_crypto_sha1.c: ntru_crypto_sha1.c:111:33: note: place parentheses around the '&' expression to silence this warning
ntru_crypto_sha1.c: A += RL(B, 5) + K00_19 + (C & (D ^ E) ^ E) + w[ 3]; C = RL(C, 30);
ntru_crypto_sha1.c: ^
ntru_crypto_sha1.c: ( )
ntru_crypto_sha1.c: 20 warnings generated.
ntru_crypto_sha2.c: ntru_crypto_sha2.c:90:21: warning: '&' within '^' [-Wbitwise-op-parentheses]
ntru_crypto_sha2.c: H += S1(E) + (E & (F ^ G) ^ G) + 0x428A2F98UL + data[ 0]; D += H;
ntru_crypto_sha2.c: ~~^~~~~~~~~ ~
ntru_crypto_sha2.c: ntru_crypto_sha2.c:90:21: note: place parentheses around the '&' expression to silence this warning
ntru_crypto_sha2.c: H += S1(E) + (E & (F ^ G) ^ G) + 0x428A2F98UL + data[ 0]; D += H;
ntru_crypto_sha2.c: ^
ntru_crypto_sha2.c: ( )
ntru_crypto_sha2.c: ntru_crypto_sha2.c:92:21: warning: '&' within '^' [-Wbitwise-op-parentheses]
ntru_crypto_sha2.c: G += S1(D) + (D & (E ^ F) ^ F) + 0x71374491UL + data[ 1]; C += G;
ntru_crypto_sha2.c: ~~^~~~~~~~~ ~
ntru_crypto_sha2.c: ...
ntru_crypto_sha2.c: ^
ntru_crypto_sha2.c: ( )
ntru_crypto_sha2.c: ntru_crypto_sha2.c:267:21: warning: '&' within '^' [-Wbitwise-op-parentheses]
ntru_crypto_sha2.c: A += S1(F) + (F & (G ^ H) ^ H) + 0xC67178F2UL + w[15]; E += A;
ntru_crypto_sha2.c: ~~^~~~~~~~~ ~
ntru_crypto_sha2.c: ntru_crypto_sha2.c:267:21: note: place parentheses around the '&' expression to silence this warning
ntru_crypto_sha2.c: A += S1(F) + (F & (G ^ H) ^ H) + 0xC67178F2UL + w[15]; E += A;
ntru_crypto_sha2.c: ^
ntru_crypto_sha2.c: ( )
ntru_crypto_sha2.c: 64 warnings generated.

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