Implementation notes: amd64, cryptothinkx, crypto_encrypt/ntruees787ep1

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_encrypt
Primitive: ntruees787ep1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
276666? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
294222? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017021620170105
301623? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
308262? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2017021620170105
329919? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
347913? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017021620170105
350595? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017021620170105
351627? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
353040? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
385878? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
714777? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017021620170105
715077? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
717459? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
720243? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
720471? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
721074? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
723249? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
724368? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017021620170105
744417? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017021620170105
747963? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
753078? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
755271? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017021620170105
761607? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
767622? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017021620170105
778065? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
788400? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017021620170105
791754? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017021620170105
793035? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
795213? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017021620170105
796644? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
800100? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017021620170105
806304? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
806961? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
813297? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017021620170105
818415? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017021620170105
821766? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017021620170105
822504? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
827568? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
830337? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
832020? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017021620170105
849996? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
851085? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
853911? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
855840? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
857400? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
861174? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017021620170105
863784? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017021620170105
864018? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017021620170105
871512? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017021620170105
873894? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
876369? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
879312? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017021620170105
881308? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
881736? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
884356? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017021620170105
886092? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017021620170105
891558? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017021620170105
894246? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
894453? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
894771? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
895629? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017021620170105
911732? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017021620170105
913209? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
914934? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017021620170105
915600? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
916350? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017021620170105
916761? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017021620170105
919762? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
919881? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017021620170105
922788? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017021620170105
929673? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017021620170105
929880? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017021620170105
929901? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
930420? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017021620170105
931698? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
932247? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017021620170105
933297? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
934167? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
934959? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
935757? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017021620170105
936030? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017021620170105
936432? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017021620170105
939837? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017021620170105
949164? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017021620170105
952875? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017021620170105
956985? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017021620170105
963315? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
967096? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017021620170105
967676? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017021620170105
969956? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017021620170105
972958? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017021620170105
977400? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017021620170105
977632? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017021620170105
978392? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017021620170105
978936? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017021620170105
984084? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017021620170105
984428? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
987264? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
987924? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
988488? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017021620170105
990699? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017021620170105
992790? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017021620170105
1012152? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
1019097? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017021620170105
1024624? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017021620170105
1038612? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017021620170105
1044879? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017021620170105
1056604? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
1058732? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
1060131? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
1061672? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
1069116? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017021620170105
1071495? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017021620170105
1081214? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017021620170105
1095984? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
1097172? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017021620170105
1102828? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
1103564? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017021620170105
1141152? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
1146208? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017021620170105
2638068? ? ?? ? ?refcc2017021620170105
2677383? ? ?? ? ?refgcc2017021620170105
2724627? ? ?? ? ?refgcc_-funroll-loops2017021620170105
3542085? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
3546666? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017021620170105

Compiler output

Implementation: crypto_encrypt/ntruees787ep1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
crypto_sha1.c: crypto_sha1.c:85:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: E += RL(A, 5) + K00_19 + (B & (C ^ D) ^ D) + data[ 0]; B = RL(B, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: crypto_sha1.c:85:33: note: place parentheses around the '&' expression to silence this warning
crypto_sha1.c: E += RL(A, 5) + K00_19 + (B & (C ^ D) ^ D) + data[ 0]; B = RL(B, 30);
crypto_sha1.c: ^
crypto_sha1.c: ( )
crypto_sha1.c: crypto_sha1.c:86:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: D += RL(E, 5) + K00_19 + (A & (B ^ C) ^ C) + data[ 1]; A = RL(A, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: ...
crypto_sha1.c: ^
crypto_sha1.c: ( )
crypto_sha1.c: crypto_sha1.c:111:33: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha1.c: A += RL(B, 5) + K00_19 + (C & (D ^ E) ^ E) + w[ 3]; C = RL(C, 30);
crypto_sha1.c: ~~^~~~~~~~~ ~
crypto_sha1.c: crypto_sha1.c:111:33: note: place parentheses around the '&' expression to silence this warning
crypto_sha1.c: A += RL(B, 5) + K00_19 + (C & (D ^ E) ^ E) + w[ 3]; C = RL(C, 30);
crypto_sha1.c: ^
crypto_sha1.c: ( )
crypto_sha1.c: 20 warnings generated.
crypto_sha2.c: crypto_sha2.c:164:21: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha2.c: H += S1(E) + (E & (F ^ G) ^ G) + 0x428A2F98UL + data[ 0]; D += H;
crypto_sha2.c: ~~^~~~~~~~~ ~
crypto_sha2.c: crypto_sha2.c:164:21: note: place parentheses around the '&' expression to silence this warning
crypto_sha2.c: H += S1(E) + (E & (F ^ G) ^ G) + 0x428A2F98UL + data[ 0]; D += H;
crypto_sha2.c: ^
crypto_sha2.c: ( )
crypto_sha2.c: crypto_sha2.c:166:21: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha2.c: G += S1(D) + (D & (E ^ F) ^ F) + 0x71374491UL + data[ 1]; C += G;
crypto_sha2.c: ~~^~~~~~~~~ ~
crypto_sha2.c: ...
crypto_sha2.c: ^
crypto_sha2.c: ( )
crypto_sha2.c: crypto_sha2.c:341:21: warning: '&' within '^' [-Wbitwise-op-parentheses]
crypto_sha2.c: A += S1(F) + (F & (G ^ H) ^ H) + 0xC67178F2UL + w[15]; E += A;
crypto_sha2.c: ~~^~~~~~~~~ ~
crypto_sha2.c: crypto_sha2.c:341:21: note: place parentheses around the '&' expression to silence this warning
crypto_sha2.c: A += S1(F) + (F & (G ^ H) ^ H) + 0xC67178F2UL + w[15]; E += A;
crypto_sha2.c: ^
crypto_sha2.c: ( )
crypto_sha2.c: 64 warnings generated.
ntru_encrypt.c: ntru_encrypt.c:477:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ntru_encrypt.c: ntru_encrypt.c:477:26: note: place parentheses around the assignment to silence this warning
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ( )
ntru_encrypt.c: ntru_encrypt.c:477:26: note: use '==' to turn this assignment into an equality comparison
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ==
ntru_encrypt.c: ntru_encrypt.c:493:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ntru_encrypt.c: ntru_encrypt.c:493:22: note: place parentheses around the assignment to silence this warning
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ( )
ntru_encrypt.c: ntru_encrypt.c:493:22: note: use '==' to turn this assignment into an equality comparison
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ==
ntru_encrypt.c: 2 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