Implementation notes: amd64, cryptothinkx, crypto_encrypt/ntruees743ep1

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_encrypt
Primitive: ntruees743ep1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
206379? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017021620170105
220335? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
224412? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017021620170105
224715? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017021620170105
227853? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017021620170105
236763? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017021620170105
240042? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
241896? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
242055? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017021620170105
242148? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2017021620170105
243171? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017021620170105
243810? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017021620170105
243873? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017021620170105
244401? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017021620170105
244665? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017021620170105
244869? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017021620170105
245427? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017021620170105
245694? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017021620170105
249651? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017021620170105
254403? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017021620170105
256725? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017021620170105
257961? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017021620170105
258372? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017021620170105
258990? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017021620170105
260829? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017021620170105
261843? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017021620170105
262374? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017021620170105
263541? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017021620170105
263805? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017021620170105
264225? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017021620170105
265536? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017021620170105
269037? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017021620170105
285120? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017021620170105
296778? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017021620170105
296949? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017021620170105
297477? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017021620170105
299046? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017021620170105
299982? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017021620170105
300237? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
300303? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
300336? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017021620170105
300459? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
301710? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017021620170105
301878? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
304608? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
304866? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
305091? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
305754? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017021620170105
306042? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017021620170105
306135? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
306171? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017021620170105
306204? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017021620170105
306279? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017021620170105
306351? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
306558? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017021620170105
306588? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017021620170105
307146? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
307476? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
307593? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017021620170105
313611? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
314163? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017021620170105
314412? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
314469? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
314664? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017021620170105
314697? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
314823? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
314922? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
315591? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
318393? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
324000? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
328551? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
329136? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
331983? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
332283? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
333372? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017021620170105
334467? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
336207? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
337398? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
339741? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017021620170105
340611? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
341745? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017021620170105
342021? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017021620170105
342381? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
343248? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017021620170105
343326? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
346626? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017021620170105
348228? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017021620170105
349227? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
350493? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
358287? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017021620170105
360056? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
361347? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017021620170105
362592? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017021620170105
367854? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017021620170105
373185? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017021620170105
374736? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017021620170105
376050? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
377032? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017021620170105
378978? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
379713? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
382734? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
383049? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
384105? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
384564? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
385572? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017021620170105
385911? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
387399? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
395762? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
396174? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
396531? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017021620170105
396717? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017021620170105
396783? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
397953? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
398475? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
420756? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017021620170105
421452? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
423927? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
424275? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
424395? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017021620170105
425202? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
438660? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
440433? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
959970? ? ?? ? ?refgcc_-funroll-loops2017021620170105
962838? ? ?? ? ?refcc2017021620170105
986916? ? ?? ? ?refgcc2017021620170105

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: ^
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