Implementation notes: amd64, rumba5, crypto_encrypt/ntruees401ep2

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20181216
Operation: crypto_encrypt
Primitive: ntruees401ep2
TimeImplementationCompilerBenchmark dateSUPERCOP version
119712refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018091720180818
120192refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018091720180818
120768refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018091720180818
120800refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018091720180818
120800refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018091720180818
121056refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018091720180818
121440refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018091720180818
122624refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018091720180818
124000refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018091720180818
127360refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018091720180818
129408refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018091720180818
129536refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018091720180818
129792refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018091720180818
131968refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018091720180818
132640refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018091720180818
132992refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018091720180818
133152refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018091720180818
133184refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018091720180818
133184refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018091720180818
133344refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018091720180818
133472refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018091720180818
133568refgcc -m64 -march=core2 -O -fomit-frame-pointer2018091720180818
134816refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018091720180818
134848refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018091720180818
136448refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018091720180818
136960refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018091720180818
136992refgcc -march=barcelona -O3 -fomit-frame-pointer2018091720180818
137056refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018091720180818
137632refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018091720180818
137632refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018091720180818
137664refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018091720180818
138016refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018091720180818
138272refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018091720180818
139872refgcc -funroll-loops -O3 -fomit-frame-pointer2018091720180818
139936refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018091720180818
140128refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018091720180818
143488refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018091720180818
143712refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018091720180818
145440refgcc -m64 -O3 -fomit-frame-pointer2018091720180818
145504refgcc -O3 -fomit-frame-pointer2018091720180818
145696refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018091720180818
146688refgcc -march=k8 -O3 -fomit-frame-pointer2018091720180818
146880refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018091720180818
149056refgcc -march=nocona -O3 -fomit-frame-pointer2018091720180818
149408refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018091720180818
150624refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018091720180818
150656refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018091720180818
151104refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018091720180818
151424refgcc -funroll-loops -O2 -fomit-frame-pointer2018091720180818
151424refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018091720180818
151616refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018091720180818
151904refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018091720180818
154112refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018091720180818
154464refgcc -funroll-loops -O -fomit-frame-pointer2018091720180818
154496refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018091720180818
154784refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018091720180818
154880refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018091720180818
155680refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018091720180818
155680refgcc -march=k8 -O2 -fomit-frame-pointer2018091720180818
156736refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018091720180818
156960refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018091720180818
157760refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018091720180818
157888refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018091720180818
158432refgcc -O2 -fomit-frame-pointer2018091720180818
158464refgcc -m64 -O2 -fomit-frame-pointer2018091720180818
158624refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018091720180818
159168refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018091720180818
159968refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018091720180818
161152refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018091720180818
161472refgcc -march=barcelona -O2 -fomit-frame-pointer2018091720180818
162176refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018091720180818
162560refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018091720180818
163040refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018091720180818
163072refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018091720180818
163392refgcc -march=barcelona -O -fomit-frame-pointer2018091720180818
163776refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018091720180818
163776refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018091720180818
164000refgcc -march=nocona -O2 -fomit-frame-pointer2018091720180818
164160refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018091720180818
165440refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018091720180818
165600refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018091720180818
165824refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018091720180818
165856refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018091720180818
168320refgcc -m64 -O -fomit-frame-pointer2018091720180818
168384refgcc -O -fomit-frame-pointer2018091720180818
168992refgcc -fno-schedule-insns -O -fomit-frame-pointer2018091720180818
172000refgcc -march=k8 -O -fomit-frame-pointer2018091720180818
172192refgcc -m64 -march=k8 -O -fomit-frame-pointer2018091720180818
175648refgcc -m64 -march=nocona -O -fomit-frame-pointer2018091720180818
175712refgcc -march=nocona -O -fomit-frame-pointer2018091720180818
197152refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018091720180818
197216refgcc -funroll-loops -Os -fomit-frame-pointer2018091720180818
197248refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018091720180818
197312refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018091720180818
197344refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018091720180818
197344refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018091720180818
197344refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018091720180818
197472refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018091720180818
197888refgcc -march=nocona -Os -fomit-frame-pointer2018091720180818
198048refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018091720180818
198176refgcc -march=k8 -Os -fomit-frame-pointer2018091720180818
198304refgcc -Os -fomit-frame-pointer2018091720180818
198432refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018091720180818
198464refgcc -m64 -Os -fomit-frame-pointer2018091720180818
198944refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018091720180818
199072refgcc -march=barcelona -Os -fomit-frame-pointer2018091720180818
202368refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018091720180818
202656refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018091720180818
563232refgcc2018091720180818
563776refcc2018091720180818
565120refgcc -funroll-loops2018091720180818

Compiler output

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