Implementation notes: amd64, margaux, crypto_kem/edonk128k32n96nu4l4

Computer: margaux
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20171218
Operation: crypto_kem
Primitive: edonk128k32n96nu4l4
TimeImplementationCompilerBenchmark dateSUPERCOP version
3667905refclang -O3 -fomit-frame-pointer -Qunused-arguments2017122020171218
3672360refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017122020171218
3674745refgcc -march=k8 -O2 -fomit-frame-pointer2017122020171218
3677814refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017122020171218
3678174refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017122020171218
3679065refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017122020171218
3680451refgcc -m64 -march=k8 -O -fomit-frame-pointer2017122020171218
3681729refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017122020171218
3684168refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017122020171218
3686427refgcc -march=k8 -O -fomit-frame-pointer2017122020171218
3687057refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017122020171218
3687390refgcc -march=nocona -O2 -fomit-frame-pointer2017122020171218
3688992refgcc -fno-schedule-insns -O -fomit-frame-pointer2017122020171218
3690720refgcc -O -fomit-frame-pointer2017122020171218
3690756refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017122020171218
3693249refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017122020171218
3707172refgcc -m64 -march=nocona -O -fomit-frame-pointer2017122020171218
3709206refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017122020171218
3717081refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017122020171218
3719610refgcc -m64 -march=core2 -O -fomit-frame-pointer2017122020171218
3726873refgcc -march=nocona -O -fomit-frame-pointer2017122020171218
3828006refgcc -funroll-loops -O3 -fomit-frame-pointer2017122020171218
3830274refgcc -O3 -fomit-frame-pointer2017122020171218
3834486refgcc -m64 -O3 -fomit-frame-pointer2017122020171218
3836754refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017122020171218
3837537refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017122020171218
3839589refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017122020171218
3840993refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017122020171218
3844710refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017122020171218
3846177refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017122020171218
3848148refgcc -march=nocona -O3 -fomit-frame-pointer2017122020171218
3855510refgcc -m64 -O2 -fomit-frame-pointer2017122020171218
3857220refgcc -funroll-loops -Os -fomit-frame-pointer2017122020171218
3857760refgcc -Os -fomit-frame-pointer2017122020171218
3860046refgcc -march=k8 -O3 -fomit-frame-pointer2017122020171218
3860451refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017122020171218
3860748refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017122020171218
3861126refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017122020171218
3862179refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017122020171218
3862782refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017122020171218
3865257refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017122020171218
3865968refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017122020171218
3867300refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017122020171218
3868146refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017122020171218
3869613refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017122020171218
3870450refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017122020171218
3870738refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017122020171218
3872583refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017122020171218
3873096refgcc -m64 -O -fomit-frame-pointer2017122020171218
3873618refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017122020171218
3873771refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017122020171218
3874149refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017122020171218
3874230refgcc -funroll-loops -O2 -fomit-frame-pointer2017122020171218
3874761refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017122020171218
3875319refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017122020171218
3878325refgcc -funroll-loops -O -fomit-frame-pointer2017122020171218
3879000refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017122020171218
3881943refgcc -O2 -fomit-frame-pointer2017122020171218
3887802refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017122020171218
3889035refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017122020171218
3890466refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017122020171218
3896028refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017122020171218
3900123refgcc -march=k8 -Os -fomit-frame-pointer2017122020171218
3902049refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017122020171218
3904056refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017122020171218
3904524refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017122020171218
3904722refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017122020171218
3920130refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017122020171218
3921867refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017122020171218
3928356refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017122020171218
3929454refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017122020171218
4035069refgcc -march=nocona -Os -fomit-frame-pointer2017122020171218
4048749refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017122020171218
4103325refgcc -m64 -Os -fomit-frame-pointer2017122020171218
5330826refgcc2017122020171218
5358834refcc2017122020171218
5363010refgcc -funroll-loops2017122020171218

Test failure

Implementation: crypto_kem/edonk128k32n96nu4l4/ref
Compiler: gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_kem_dec returns nonzero

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref

Test failure

Implementation: crypto_kem/edonk128k32n96nu4l4/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_kem_dec returns nonzero
error 111
crypto_kem_dec returns nonzero

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref

Test failure

Implementation: crypto_kem/edonk128k32n96nu4l4/ref
Compiler: gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_kem/edonk128k32n96nu4l4/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
dec.c: dec.c:714:89: warning: for loop has empty body [-Wempty-body]
dec.c: for(i=0; i dec.c: ^
dec.c: dec.c:714:89: note: put the semicolon on a separate line to silence this warning
dec.c: dec.c:594:76: warning: for loop has empty body [-Wempty-body]
dec.c: for(i=0; i dec.c: ^
dec.c: dec.c:594:76: note: put the semicolon on a separate line to silence this warning
dec.c: dec.c:599:56: warning: for loop has empty body [-Wempty-body]
dec.c: for(i=0; i dec.c: ^
dec.c: dec.c:599:56: note: put the semicolon on a separate line to silence this warning
dec.c: 3 warnings generated.
mpfq_2_128.c: mpfq_2_128.c:154:35: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
mpfq_2_128.c: int ret = mpn_set_str(zz, tmp, len, k->gt;io_type);
mpfq_2_128.c: ^~~
mpfq_2_128.c: /home/djb/benchmarking/supercop-20171218/supercop-data/margaux/amd64/include/gmp.h:1588:68: note: passing argument to parameter here
mpfq_2_128.c: __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c: ^
mpfq_2_128.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -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