Implementation notes: amd64, skylake, crypto_encrypt/ntruees439ep1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_encrypt
Primitive: ntruees439ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
148748refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
148794refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
152520refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
154682refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
155078refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
155512refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
155530refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
155610refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
155998refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
156248refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
156686refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
158254refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
161480refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
161656refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
162054refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
162708refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
162728refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
163070refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
163122refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
163206refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
163792refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
167478refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
167512refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
168396refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
168990refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
169018refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
169056refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
179298refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
179540refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
179834refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
179906refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
180116refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
180204refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
180234refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
181044refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
181354refgcc -O3 -fomit-frame-pointer2016121720161026
181508refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
181620refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
182090refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
182280refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
182418refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
186836refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
186990refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
187548refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
187576refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
187998refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
188074refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
188216refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
188344refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
188514refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
188534refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
188642refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
189388refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
191518refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
192008refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
192134refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
192204refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
193660refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
193714refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
194744refgcc -O2 -fomit-frame-pointer2016121720161026
194758refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
195018refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
195152refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
195892refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
196096refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
196168refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
196280refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
196288refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
196314refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
196386refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
196586refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
196588refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
196644refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
197422refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
197526refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
198220refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
198902refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
200944refgcc -O -fomit-frame-pointer2016121720161026
201048refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
201066refgcc -m64 -O -fomit-frame-pointer2016121720161026
201908refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
202000refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
203194refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
203746refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
204212refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
204878refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
204954refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
205028refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
212006refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
212272refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
244842refgcc -Os -fomit-frame-pointer2016121720161026
244962refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
245026refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
245080refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
245136refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
245182refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
245184refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
245272refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
245300refgcc -m64 -Os -fomit-frame-pointer2016121720161026
245354refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
245374refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
245402refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
245502refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
245818refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
246600refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
247290refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
250646refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
250700refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
542144refgcc -funroll-loops2016121720161026
542306refcc2016121720161026
543154refgcc2016121720161026

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