Implementation notes: amd64, h4e350, crypto_aead/pi64cipher128v1

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: pi64cipher128v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
143178optimized_nonSSEgcc -funroll-loops -O -fomit-frame-pointer2014062520140525
143184optimized_nonSSEgcc -funroll-loops -m64 -O -fomit-frame-pointer2014062520140525
143295optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
143316optimized_nonSSEgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014062620140525
143370optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014062620140525
143760optimized_nonSSEgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014062620140525
143769optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
144015optimized_nonSSEgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014062620140525
144033optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
144312optimized_nonSSEgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014062620140525
145233optimized_nonSSEgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014062520140525
145236optimized_nonSSEgcc -funroll-loops -O2 -fomit-frame-pointer2014062520140525
145260optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014062620140525
146427optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
146454optimized_nonSSEgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014062620140525
146838optimized_nonSSEgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014062520140525
146856optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
146865optimized_nonSSEgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014062620140525
147228optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
147693optimized_nonSSEgcc -funroll-loops -O3 -fomit-frame-pointer2014062520140525
147702optimized_nonSSEgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014062620140525
147708optimized_nonSSEgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014062520140525
147744optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014062620140525
147756optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
147807optimized_nonSSEgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
147867optimized_nonSSEgcc -march=nocona -O3 -fomit-frame-pointer2014062520140525
148596optimized_nonSSEgcc -O3 -fomit-frame-pointer2014062520140525
148608optimized_nonSSEgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014062620140525
148632optimized_nonSSEgcc -m64 -O3 -fomit-frame-pointer2014062520140525
148791optimized_nonSSEgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014062520140525
148950optimized_nonSSEgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014062620140525
148953optimized_nonSSEgcc -march=barcelona -O3 -fomit-frame-pointer2014062520140525
148992optimized_nonSSEgcc -march=k8 -O3 -fomit-frame-pointer2014062520140525
149052optimized_nonSSEgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
149109optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
149943optimized_nonSSEgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
150210optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
150222optimized_nonSSEgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014062620140525
178170optimized_nonSSEgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
178194optimized_nonSSEgcc -march=nocona -O2 -fomit-frame-pointer2014062520140525
178239optimized_nonSSEgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014062520140525
178239optimized_nonSSEgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014062520140525
178248optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014062520140525
179361optimized_nonSSEgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
179385optimized_nonSSEgcc -march=barcelona -O2 -fomit-frame-pointer2014062520140525
179490optimized_nonSSEgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014062520140525
179628optimized_nonSSEgcc -march=k8 -O2 -fomit-frame-pointer2014062520140525
179646optimized_nonSSEgcc -march=nocona -Os -fomit-frame-pointer2014062520140525
179652optimized_nonSSEgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
179910optimized_nonSSEgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014062620140525
180012optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
180021optimized_nonSSEgcc -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
180240optimized_nonSSEgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014062520140525
180246optimized_nonSSEgcc -funroll-loops -Os -fomit-frame-pointer2014062520140525
180348optimized_nonSSEgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014062620140525
180360optimized_nonSSEgcc -O2 -fomit-frame-pointer2014062520140525
180390optimized_nonSSEgcc -m64 -O2 -fomit-frame-pointer2014062520140525
180480optimized_nonSSEgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014062620140525
180666optimized_nonSSEgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014062520140525
180762optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
180870optimized_nonSSEgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014062620140525
181566optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014062620140525
181797optimized_nonSSEgcc -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
181803optimized_nonSSEgcc -march=k8 -Os -fomit-frame-pointer2014062520140525
181809optimized_nonSSEgcc -fno-schedule-insns -Os -fomit-frame-pointer2014062620140525
181812optimized_nonSSEgcc -Os -fomit-frame-pointer2014062520140525
181833optimized_nonSSEgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014062520140525
181863optimized_nonSSEgcc -m64 -Os -fomit-frame-pointer2014062520140525
182550optimized_nonSSEgcc -march=barcelona -Os -fomit-frame-pointer2014062520140525
182631optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
182670optimized_nonSSEgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
183147optimized_nonSSEgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014062520140525
183186optimized_nonSSEgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014062520140525
183207optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014062520140525
183252optimized_nonSSEgcc -m64 -march=core2 -Os -fomit-frame-pointer2014062520140525
193353optimized_nonSSEgcc -march=nocona -O -fomit-frame-pointer2014062520140525
194112optimized_nonSSEgcc -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
194874optimized_nonSSEgcc -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
194922optimized_nonSSEgcc -march=k8 -O -fomit-frame-pointer2014062520140525
195915optimized_nonSSEgcc -m64 -O -fomit-frame-pointer2014062520140525
195915optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014062520140525
195915optimized_nonSSEgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014062520140525
195918optimized_nonSSEgcc -O -fomit-frame-pointer2014062520140525
195918optimized_nonSSEgcc -m64 -march=corei7 -O -fomit-frame-pointer2014062520140525
196530optimized_nonSSEgcc -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
196542optimized_nonSSEgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014062520140525
196635optimized_nonSSEgcc -march=barcelona -O -fomit-frame-pointer2014062520140525
196683optimized_nonSSEgcc -fno-schedule-insns -O -fomit-frame-pointer2014062620140525
202482optimized_nonSSEgcc -m64 -march=core2 -O -fomit-frame-pointer2014062520140525
204744refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014062620140525
204921refgcc -march=nocona -O3 -fomit-frame-pointer2014062620140525
205296refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014062620140525
205338refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014062620140525
208011refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014062620140525
208296refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014062620140525
208311refgcc -funroll-loops -O -fomit-frame-pointer2014062620140525
208329refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014062620140525
209259refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014062620140525
209469refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014062620140525
209484refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014062620140525
209514refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014062620140525
209670refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014062620140525
209706refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014062620140525
209745refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014062620140525
209802refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014062620140525
209817refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014062620140525
209841refgcc -march=k8 -O3 -fomit-frame-pointer2014062620140525
210279refgcc -march=barcelona -O3 -fomit-frame-pointer2014062620140525
210333refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014062620140525
211350refgcc -O3 -fomit-frame-pointer2014062620140525
211410refgcc -m64 -O3 -fomit-frame-pointer2014062620140525
211863refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014062620140525
212421refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014062620140525
212439refgcc -funroll-loops -O3 -fomit-frame-pointer2014062620140525
212457refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014062620140525
213330refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014062620140525
213726refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014062620140525
242340refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014062620140525
242349refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014062620140525
242733refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014062620140525
246231refgcc -march=barcelona -O2 -fomit-frame-pointer2014062620140525
246255refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014062620140525
247386refgcc -march=nocona -O2 -fomit-frame-pointer2014062620140525
247413refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014062620140525
249468refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014062620140525
249525refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014062620140525
249630refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014062620140525
249825refgcc -march=k8 -O2 -fomit-frame-pointer2014062620140525
249828refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014062620140525
250971refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014062620140525
250974refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014062620140525
250974refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014062620140525
250995refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014062620140525
251376refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014062620140525
251421refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014062620140525
251715refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014062620140525
251772refgcc -m64 -O2 -fomit-frame-pointer2014062620140525
253194refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014062620140525
253350refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014062620140525
253353refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014062620140525
253365refgcc -march=nocona -Os -fomit-frame-pointer2014062620140525
253398refgcc -funroll-loops -O2 -fomit-frame-pointer2014062620140525
253506refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014062620140525
253578refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014062620140525
253635refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014062620140525
253638refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014062620140525
253740refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014062620140525
254328refgcc -march=k8 -O -fomit-frame-pointer2014062620140525
254364refgcc -m64 -march=k8 -O -fomit-frame-pointer2014062620140525
254373refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014062620140525
254412refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014062620140525
254430refgcc -march=barcelona -O -fomit-frame-pointer2014062620140525
254649refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014062620140525
254649refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014062620140525
254655refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014062620140525
254682refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014062620140525
254709refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014062620140525
254967refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014062620140525
255003refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014062620140525
255033refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014062620140525
255213refgcc -m64 -O -fomit-frame-pointer2014062620140525
255222refgcc -m64 -march=core2 -O -fomit-frame-pointer2014062620140525
255225refgcc -fno-schedule-insns -O -fomit-frame-pointer2014062620140525
255240refgcc -march=nocona -O -fomit-frame-pointer2014062620140525
255270refgcc -m64 -march=nocona -O -fomit-frame-pointer2014062620140525
255273refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014062620140525
255282refgcc -O -fomit-frame-pointer2014062620140525
255318refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014062620140525
255354refgcc -march=barcelona -Os -fomit-frame-pointer2014062620140525
256098refgcc -Os -fomit-frame-pointer2014062620140525
256128refgcc -m64 -Os -fomit-frame-pointer2014062620140525
256128refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014062620140525
256134refgcc -march=k8 -Os -fomit-frame-pointer2014062620140525
256143refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014062620140525
256164refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014062620140525
258795refgcc -O2 -fomit-frame-pointer2014062620140525
261408refgcc -funroll-loops -Os -fomit-frame-pointer2014062620140525
266022refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014062620140525
911424optimized_nonSSEcc2014062620140525
911436optimized_nonSSEgcc2014062520140525
911664optimized_nonSSEgcc -funroll-loops2014062520140525
1092525refgcc2014062620140525
1094271refcc2014062620140525
1095657refgcc -funroll-loops2014062620140525

Test failure

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fomit-frame-pointer
error 111
crypto_aead_decrypt returns nonzero

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer optimized_nonSSE ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer optimized_nonSSE ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer optimized_nonSSE ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer optimized_nonSSE ref
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer optimized_nonSSE ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fomit-frame-pointer
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer optimized_nonSSE ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mpclmul'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer optimized_nonSSE ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-mpclmul'
encrypt.c: clang: warning: argument unused during compilation: '-fpolly'
encrypt.c: clang: warning: argument unused during compilation: '-fvectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer optimized_nonSSE ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer optimized_nonSSE ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
encrypt.c: clang: warning: argument unused during compilation: '-mavx2'
encrypt.c: clang: warning: argument unused during compilation: '-fpolly'
encrypt.c: clang: warning: argument unused during compilation: '-fvectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
encrypt.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer optimized_nonSSE ref