Implementation notes: amd64, h4e350, crypto_aead/pi32cipher128v1

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: pi32cipher128v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
185604optimized_nonSSEgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
185721optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
185796optimized_nonSSEgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014062520140525
185988optimized_nonSSEgcc -march=nocona -O3 -fomit-frame-pointer2014062520140525
186519optimized_nonSSEgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014062520140525
186549optimized_nonSSEgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014062520140525
186558optimized_nonSSEgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
186558optimized_nonSSEgcc -march=k8 -O3 -fomit-frame-pointer2014062520140525
186831optimized_nonSSEgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
186876optimized_nonSSEgcc -march=barcelona -O3 -fomit-frame-pointer2014062520140525
187332optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
187371optimized_nonSSEgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014062520140525
188148optimized_nonSSEgcc -O3 -fomit-frame-pointer2014062520140525
188148optimized_nonSSEgcc -m64 -O3 -fomit-frame-pointer2014062520140525
188157optimized_nonSSEgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
188415optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
188439optimized_nonSSEgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014062520140525
189609optimized_nonSSEgcc -funroll-loops -O3 -fomit-frame-pointer2014062520140525
189609optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
189630optimized_nonSSEgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014062520140525
191922optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
191958optimized_nonSSEgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014062520140525
193821optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
193833optimized_nonSSEgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014062520140525
193839optimized_nonSSEgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014062520140525
193875optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
193923optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
193983optimized_nonSSEgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014062520140525
194271optimized_nonSSEgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014062520140525
194526optimized_nonSSEgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014062520140525
194637optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
194637optimized_nonSSEgcc -funroll-loops -m64 -O -fomit-frame-pointer2014062520140525
194640optimized_nonSSEgcc -funroll-loops -O -fomit-frame-pointer2014062520140525
195240optimized_nonSSEgcc -funroll-loops -O2 -fomit-frame-pointer2014062520140525
195243optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
195249optimized_nonSSEgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014062520140525
195498optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
195810optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
275694optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014062520140525
275700optimized_nonSSEgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014062520140525
275706optimized_nonSSEgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014062520140525
275796optimized_nonSSEgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014062520140525
276273optimized_nonSSEgcc -march=nocona -O2 -fomit-frame-pointer2014062520140525
276306optimized_nonSSEgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
286944optimized_nonSSEgcc -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
287169optimized_nonSSEgcc -march=nocona -Os -fomit-frame-pointer2014062520140525
288696optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
288711optimized_nonSSEgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014062520140525
289758optimized_nonSSEgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014062520140525
290265optimized_nonSSEgcc -march=k8 -O2 -fomit-frame-pointer2014062520140525
290376optimized_nonSSEgcc -m64 -O2 -fomit-frame-pointer2014062520140525
290382optimized_nonSSEgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
290601optimized_nonSSEgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
291570optimized_nonSSEgcc -O2 -fomit-frame-pointer2014062520140525
295941optimized_nonSSEgcc -march=barcelona -O2 -fomit-frame-pointer2014062520140525
295944optimized_nonSSEgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
297162optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
297186optimized_nonSSEgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014062520140525
297216optimized_nonSSEgcc -funroll-loops -Os -fomit-frame-pointer2014062520140525
297276optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
297336optimized_nonSSEgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014062520140525
303891optimized_nonSSEgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014062520140525
304119optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
310953optimized_nonSSEgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014062520140525
310965optimized_nonSSEgcc -m64 -march=core2 -Os -fomit-frame-pointer2014062520140525
311010optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014062520140525
311031optimized_nonSSEgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014062520140525
313548optimized_nonSSEgcc -march=nocona -O -fomit-frame-pointer2014062520140525
313587optimized_nonSSEgcc -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
314787optimized_nonSSEgcc -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
315348optimized_nonSSEgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014062520140525
315354optimized_nonSSEgcc -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
315375optimized_nonSSEgcc -O -fomit-frame-pointer2014062520140525
315387optimized_nonSSEgcc -m64 -march=corei7 -O -fomit-frame-pointer2014062520140525
315402optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014062520140525
315423optimized_nonSSEgcc -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
315441optimized_nonSSEgcc -m64 -O -fomit-frame-pointer2014062520140525
315441optimized_nonSSEgcc -m64 -march=core2 -O -fomit-frame-pointer2014062520140525
315642optimized_nonSSEgcc -march=barcelona -O -fomit-frame-pointer2014062520140525
315648optimized_nonSSEgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014062520140525
316764optimized_nonSSEgcc -Os -fomit-frame-pointer2014062520140525
316905optimized_nonSSEgcc -m64 -Os -fomit-frame-pointer2014062520140525
316908optimized_nonSSEgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014062520140525
316956optimized_nonSSEgcc -march=k8 -Os -fomit-frame-pointer2014062520140525
317172optimized_nonSSEgcc -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
317193optimized_nonSSEgcc -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
317256refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
317445refgcc -march=nocona -O3 -fomit-frame-pointer2014062520140525
317829optimized_nonSSEgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
317967refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
319038optimized_nonSSEgcc -march=k8 -O -fomit-frame-pointer2014062520140525
319209refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014062520140525
319713optimized_nonSSEgcc -march=barcelona -Os -fomit-frame-pointer2014062520140525
320778refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014062520140525
321135refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
321570refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014062520140525
321651refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
324384refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014062520140525
324468refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014062520140525
324531refgcc -funroll-loops -O3 -fomit-frame-pointer2014062520140525
324909refgcc -march=barcelona -O3 -fomit-frame-pointer2014062520140525
325008refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
325389refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
325425refgcc -march=k8 -O3 -fomit-frame-pointer2014062520140525
325431refgcc -O3 -fomit-frame-pointer2014062520140525
325467refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
326058refgcc -m64 -O3 -fomit-frame-pointer2014062520140525
327048refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
329517refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014062520140525
329655refgcc -funroll-loops -O -fomit-frame-pointer2014062520140525
329670refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
330714refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014062520140525
331989refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
336477refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014062520140525
338154refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014062520140525
338163refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
338727refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
338823refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014062520140525
381543refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014062520140525
381546refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
382797refgcc -march=nocona -O2 -fomit-frame-pointer2014062520140525
382821refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
391923refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
391929refgcc -march=barcelona -O2 -fomit-frame-pointer2014062520140525
393879refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014062520140525
393882refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014062520140525
393888refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014062520140525
393894refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014062520140525
394344refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
394389refgcc -funroll-loops -O2 -fomit-frame-pointer2014062520140525
395346refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
395352refgcc -march=k8 -O2 -fomit-frame-pointer2014062520140525
396504refgcc -m64 -O2 -fomit-frame-pointer2014062520140525
396519refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
396534refgcc -O2 -fomit-frame-pointer2014062520140525
396945refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014062520140525
400026refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
400272refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014062520140525
403170refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014062520140525
403290refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
404976refgcc -march=nocona -Os -fomit-frame-pointer2014062520140525
405615refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
405714refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014062520140525
412569refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014062520140525
412599refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014062520140525
412602refgcc -m64 -O -fomit-frame-pointer2014062520140525
412605refgcc -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
412605refgcc -m64 -march=core2 -O -fomit-frame-pointer2014062520140525
412674refgcc -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
412725refgcc -march=nocona -O -fomit-frame-pointer2014062520140525
413010refgcc -march=k8 -O -fomit-frame-pointer2014062520140525
413028refgcc -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
413070refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
413100refgcc -march=barcelona -O -fomit-frame-pointer2014062520140525
413118refgcc -O -fomit-frame-pointer2014062520140525
413127refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014062520140525
413133refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014062520140525
416253refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
417534refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014062520140525
423504refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
424056refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014062520140525
424695refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
425091refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014062520140525
425103refgcc -march=k8 -Os -fomit-frame-pointer2014062520140525
425130refgcc -Os -fomit-frame-pointer2014062520140525
425139refgcc -m64 -Os -fomit-frame-pointer2014062520140525
425169refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
425814refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
426519refgcc -march=barcelona -Os -fomit-frame-pointer2014062520140525
429525refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014062520140525
429882refgcc -funroll-loops -Os -fomit-frame-pointer2014062520140525
429939refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
430119refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014062520140525
430701refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
435441refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014062520140525
435516refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014062520140525
435669refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014062520140525
435942refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014062520140525
1704456optimized_nonSSEgcc2014062520140525
1704825optimized_nonSSEgcc -funroll-loops2014062520140525
1704966optimized_nonSSEcc2014062520140525
2120223refgcc2014062520140525
2120484refgcc -funroll-loops2014062520140525
2120538refcc2014062520140525

Test failure

Implementation: crypto_aead/pi32cipher128v1/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/pi32cipher128v1/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/pi32cipher128v1/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/pi32cipher128v1/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/pi32cipher128v1/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/pi32cipher128v1/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