Implementation notes: amd64, h4e350, crypto_aead/pi32cipher256v1

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: pi32cipher256v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
185610optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
185796optimized_nonSSEgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
185805optimized_nonSSEgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014062520140525
185919optimized_nonSSEgcc -march=nocona -O3 -fomit-frame-pointer2014062520140525
186666optimized_nonSSEgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014062520140525
186678optimized_nonSSEgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014062520140525
186699optimized_nonSSEgcc -march=barcelona -O3 -fomit-frame-pointer2014062520140525
186705optimized_nonSSEgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
186837optimized_nonSSEgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
186837optimized_nonSSEgcc -march=k8 -O3 -fomit-frame-pointer2014062520140525
187293optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
187311optimized_nonSSEgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014062520140525
188334optimized_nonSSEgcc -m64 -O3 -fomit-frame-pointer2014062520140525
188337optimized_nonSSEgcc -O3 -fomit-frame-pointer2014062520140525
188337optimized_nonSSEgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
188826optimized_nonSSEgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014062520140525
188886optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
189264optimized_nonSSEgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014062520140525
189270optimized_nonSSEgcc -funroll-loops -O3 -fomit-frame-pointer2014062520140525
189270optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
192156optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
192288optimized_nonSSEgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014062520140525
193785optimized_nonSSEgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014062520140525
193794optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
193869optimized_nonSSEgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014062520140525
193899optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
194001optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
194013optimized_nonSSEgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014062520140525
194025optimized_nonSSEgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014062520140525
194136optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
194394optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
194400optimized_nonSSEgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014062520140525
194613optimized_nonSSEgcc -funroll-loops -O -fomit-frame-pointer2014062520140525
194622optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
194634optimized_nonSSEgcc -funroll-loops -m64 -O -fomit-frame-pointer2014062520140525
195069optimized_nonSSEgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014062520140525
195102optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
195174optimized_nonSSEgcc -funroll-loops -O2 -fomit-frame-pointer2014062520140525
275052optimized_nonSSEgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014062520140525
275073optimized_nonSSEgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014062520140525
275094optimized_nonSSEgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014062520140525
275106optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014062520140525
277347optimized_nonSSEgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
277389optimized_nonSSEgcc -march=nocona -O2 -fomit-frame-pointer2014062520140525
285753optimized_nonSSEgcc -march=nocona -Os -fomit-frame-pointer2014062520140525
285939optimized_nonSSEgcc -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
288939optimized_nonSSEgcc -march=k8 -O2 -fomit-frame-pointer2014062520140525
288987optimized_nonSSEgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
289317optimized_nonSSEgcc -m64 -O2 -fomit-frame-pointer2014062520140525
289428optimized_nonSSEgcc -O2 -fomit-frame-pointer2014062520140525
289827optimized_nonSSEgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
289980optimized_nonSSEgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014062520140525
290634optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
290823optimized_nonSSEgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014062520140525
296154optimized_nonSSEgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
296196optimized_nonSSEgcc -march=barcelona -O2 -fomit-frame-pointer2014062520140525
297726optimized_nonSSEgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014062520140525
297789optimized_nonSSEgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014062520140525
297798optimized_nonSSEgcc -funroll-loops -Os -fomit-frame-pointer2014062520140525
297798optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
297879optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
301689optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
302040optimized_nonSSEgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014062520140525
310683optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014062520140525
311166optimized_nonSSEgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014062520140525
311361optimized_nonSSEgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014062520140525
311370optimized_nonSSEgcc -m64 -march=core2 -Os -fomit-frame-pointer2014062520140525
315432optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014062520140525
315435optimized_nonSSEgcc -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
315468optimized_nonSSEgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014062520140525
315486optimized_nonSSEgcc -O -fomit-frame-pointer2014062520140525
315492optimized_nonSSEgcc -m64 -O -fomit-frame-pointer2014062520140525
315609optimized_nonSSEgcc -m64 -march=core2 -O -fomit-frame-pointer2014062520140525
315633optimized_nonSSEgcc -m64 -march=corei7 -O -fomit-frame-pointer2014062520140525
315921optimized_nonSSEgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014062520140525
316086optimized_nonSSEgcc -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
316317optimized_nonSSEgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014062520140525
316407optimized_nonSSEgcc -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
316479optimized_nonSSEgcc -m64 -Os -fomit-frame-pointer2014062520140525
316494optimized_nonSSEgcc -march=nocona -O -fomit-frame-pointer2014062520140525
316722optimized_nonSSEgcc -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
316782optimized_nonSSEgcc -march=k8 -Os -fomit-frame-pointer2014062520140525
317031optimized_nonSSEgcc -Os -fomit-frame-pointer2014062520140525
317043optimized_nonSSEgcc -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
317442refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
317658optimized_nonSSEgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
318174optimized_nonSSEgcc -march=barcelona -Os -fomit-frame-pointer2014062520140525
318303refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014062520140525
318330refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014062520140525
318348refgcc -march=nocona -O3 -fomit-frame-pointer2014062520140525
319704optimized_nonSSEgcc -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
320586refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
320682refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014062520140525
320814optimized_nonSSEgcc -march=k8 -O -fomit-frame-pointer2014062520140525
322860refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014062520140525
323319refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
324225refgcc -funroll-loops -O3 -fomit-frame-pointer2014062520140525
324228refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014062520140525
324240refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
325737refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014062520140525
325770refgcc -march=k8 -O3 -fomit-frame-pointer2014062520140525
326058refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014062520140525
326115refgcc -march=barcelona -O3 -fomit-frame-pointer2014062520140525
326301refgcc -O3 -fomit-frame-pointer2014062520140525
326343refgcc -m64 -O3 -fomit-frame-pointer2014062520140525
327723refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014062520140525
328134refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014062520140525
331296refgcc -funroll-loops -O -fomit-frame-pointer2014062520140525
331305refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
331317refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014062520140525
331608refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014062520140525
331806refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
336552optimized_nonSSEgcc -march=barcelona -O -fomit-frame-pointer2014062520140525
337620refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014062520140525
338169refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014062520140525
338199refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014062520140525
338664refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
341127refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
381915refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
381915refgcc -march=nocona -O2 -fomit-frame-pointer2014062520140525
384546refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014062520140525
384552refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014062520140525
390156refgcc -march=barcelona -O2 -fomit-frame-pointer2014062520140525
390216refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
394074refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014062520140525
394104refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014062520140525
394128refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014062520140525
394398refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014062520140525
395034refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014062520140525
395091refgcc -march=k8 -O2 -fomit-frame-pointer2014062520140525
395127refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
396213refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014062520140525
396231refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
396345refgcc -funroll-loops -O2 -fomit-frame-pointer2014062520140525
396399refgcc -O2 -fomit-frame-pointer2014062520140525
396579refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014062520140525
396591refgcc -m64 -O2 -fomit-frame-pointer2014062520140525
399762refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014062520140525
399858refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014062520140525
401382refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014062520140525
401535refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014062520140525
411846refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
411846refgcc -march=nocona -Os -fomit-frame-pointer2014062520140525
413160refgcc -march=barcelona -O -fomit-frame-pointer2014062520140525
413184refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014062520140525
413274refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014062520140525
413355refgcc -m64 -march=nocona -O -fomit-frame-pointer2014062520140525
413466refgcc -march=k8 -O -fomit-frame-pointer2014062520140525
413664refgcc -march=nocona -O -fomit-frame-pointer2014062520140525
415536refgcc -m64 -march=core2 -O -fomit-frame-pointer2014062520140525
415605refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014062520140525
415611refgcc -O -fomit-frame-pointer2014062520140525
415611refgcc -m64 -O -fomit-frame-pointer2014062520140525
415623refgcc -fno-schedule-insns -O -fomit-frame-pointer2014062520140525
415638refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014062520140525
415665refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014062520140525
416586refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014062520140525
416691refgcc -m64 -march=k8 -O -fomit-frame-pointer2014062520140525
416736refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014062520140525
423891refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
424188refgcc -march=k8 -Os -fomit-frame-pointer2014062520140525
424194refgcc -Os -fomit-frame-pointer2014062520140525
424197refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014062520140525
424206refgcc -m64 -Os -fomit-frame-pointer2014062520140525
424320refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
424962refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014062520140525
425058refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
425400refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014062520140525
425457refgcc -march=barcelona -Os -fomit-frame-pointer2014062520140525
430743refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014062520140525
430785refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014062520140525
430845refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014062520140525
431169refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014062520140525
431484refgcc -funroll-loops -Os -fomit-frame-pointer2014062520140525
434652refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014062520140525
434673refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014062520140525
434709refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014062520140525
435291refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014062520140525
1699059optimized_nonSSEcc2014062520140525
1699605optimized_nonSSEgcc2014062520140525
1702221optimized_nonSSEgcc -funroll-loops2014062520140525
2123157refgcc -funroll-loops2014062520140525
2123745refcc2014062520140525
2184120refgcc2014062520140525

Test failure

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