Implementation notes: amd64, cryptothinkx, crypto_encrypt/ntruees439ep1

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_encrypt
Primitive: ntruees439ep1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
132306? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017021620170105
132357? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017021620170105
132810? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
133275? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017021620170105
135861? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017021620170105
139020? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017021620170105
139719? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017021620170105
139848? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017021620170105
139923? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017021620170105
140508? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017021620170105
140781? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017021620170105
140820? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
141459? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017021620170105
141624? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017021620170105
141630? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2017021620170105
144297? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017021620170105
144372? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017021620170105
145092? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017021620170105
148383? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017021620170105
148455? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017021620170105
149628? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017021620170105
151023? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017021620170105
152226? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017021620170105
152358? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017021620170105
152757? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017021620170105
153228? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017021620170105
154362? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017021620170105
154620? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017021620170105
156156? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017021620170105
156645? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017021620170105
156837? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017021620170105
159000? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017021620170105
160080? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
160098? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017021620170105
160290? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017021620170105
161547? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
161613? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
161817? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017021620170105
161859? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
162942? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017021620170105
163332? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021620170105
163461? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
163611? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
163671? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021620170105
164112? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017021620170105
164181? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017021620170105
165144? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017021620170105
165555? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
166095? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
166686? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017021620170105
168756? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
168828? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017021620170105
171111? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017021620170105
171174? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017021620170105
171702? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
172005? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
172080? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
172233? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
172320? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017021620170105
172503? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017021620170105
172542? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
172590? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
175122? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
175323? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
177006? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017021620170105
177606? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017021620170105
177816? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
177828? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
177891? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017021620170105
178605? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017021620170105
178941? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017021620170105
180510? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017021620170105
180675? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
181452? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017021620170105
181680? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017021620170105
181836? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017021620170105
181845? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017021620170105
182049? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017021620170105
182301? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017021620170105
182325? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021620170105
182466? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017021620170105
183150? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
183177? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
183249? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021620170105
183399? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017021620170105
184398? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017021620170105
187545? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
187554? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
188175? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
188394? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017021620170105
188430? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017021620170105
189204? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017021620170105
189207? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017021620170105
189756? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021620170105
190347? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017021620170105
193077? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017021620170105
193875? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021620170105
196578? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017021620170105
205755? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017021620170105
208200? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
208254? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
208323? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021620170105
209997? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017021620170105
212805? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017021620170105
214374? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
214482? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
214722? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
217824? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
218001? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
218142? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
218169? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
218223? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017021620170105
218526? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017021620170105
218568? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
218721? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
218880? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017021620170105
219102? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017021620170105
219735? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017021620170105
222870? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017021620170105
228849? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017021620170105
241374? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017021620170105
242388? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021620170105
505365? ? ?? ? ?refgcc2017021620170105
562470? ? ?? ? ?refgcc_-funroll-loops2017021620170105
587640? ? ?? ? ?refcc2017021620170105

Compiler output

Implementation: crypto_encrypt/ntruees439ep1/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