Implementation notes: armeabi, h7silver, crypto_encrypt/mceliece

Computer: h7silver
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20130126
Operation: crypto_encrypt
Primitive: mceliece
TimeImplementationCompilerBenchmark dateSUPERCOP version
2551209refgcc -mcpu=arm810 -O3 -fomit-frame-pointer2012122520121016
2555685refgcc -mcpu=strongarm -O3 -fomit-frame-pointer2012122520121016
2877760refgcc -mcpu=arm810 -O2 -fomit-frame-pointer2012122520121016
2940503refgcc -mcpu=arm810 -Os -fomit-frame-pointer2012122520121016
2941002refgcc -mcpu=strongarm1100 -Os -fomit-frame-pointer2012122520121016
3136858refgcc -mcpu=arm8 -O2 -fomit-frame-pointer2012122520121016
3184876refgcc -mcpu=strongarm1100 -O -fomit-frame-pointer2012122520121016
3185988refgcc -mcpu=arm8 -O -fomit-frame-pointer2012122520121016
3189872refgcc -mcpu=strongarm110 -O -fomit-frame-pointer2012122520121016
3199168refgcc -mcpu=arm810 -O -fomit-frame-pointer2012122520121016
3214895refgcc -mcpu=strongarm -O -fomit-frame-pointer2012122520121016
6468135refgcc -mcpu=strongarm110 -O3 -fomit-frame-pointer2012122520121016
6474673refgcc -mcpu=arm8 -O3 -fomit-frame-pointer2012122520121016
6668033refgcc -mcpu=strongarm1100 -O3 -fomit-frame-pointer2012122520121016
6772343refgcc -mcpu=strongarm1100 -O2 -fomit-frame-pointer2012122520121016
6787251refgcc -mcpu=strongarm110 -O2 -fomit-frame-pointer2012122520121016
6791542refgcc -mcpu=strongarm110 -Os -fomit-frame-pointer2012122520121016
6802962refgcc -mcpu=strongarm -O2 -fomit-frame-pointer2012122520121016
6842044refgcc -mcpu=strongarm -Os -fomit-frame-pointer2012122520121016
6846930refgcc -mcpu=arm8 -Os -fomit-frame-pointer2012122520121016

Test failure

Implementation: crypto_encrypt/mceliece/ref
Compiler: cc
error 111

Number of similar (compiler,implementation) pairs: 35, namely:
CompilerImplementations
cc ref
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -mcpu=cortex-a5 -O2 -fomit-frame-pointer ref
gcc -mcpu=cortex-a5 -O3 -fomit-frame-pointer ref
gcc -mcpu=cortex-a5 -O -fomit-frame-pointer ref
gcc -mcpu=cortex-a5 -Os -fomit-frame-pointer ref
gcc -mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon -O2 -fomit-frame-pointer ref
gcc -mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon -O3 -fomit-frame-pointer ref
gcc -mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon -O -fomit-frame-pointer ref
gcc -mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon -Os -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -O2 -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -O3 -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -O -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -Os -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -O2 -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -O3 -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -O -fomit-frame-pointer ref
gcc -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_encrypt/mceliece/ref
Compiler: clang -O3
misc.c: misc.c:6:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
misc.c: __inline int u8rnd() { char c; randombytes(&c,1); return 255 & (int) c; }
misc.c: ^~
misc.c: /home/djb/benchmarking/supercop-20121016/supercop-data/h7silver/armeabi/include/randombytes.h:4:40: note: passing argument to parameter here
misc.c: extern void randombytes(unsigned char *,unsigned long long);
misc.c: ^
misc.c: 1 warning generated.
try.c: crypto_encrypt_mceliece.a(keypair.o): In function `gop_supr':
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o): In function `crypto_encrypt_mceliece_ref_keypair':
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o):keypair.c:(.text+0x...): more undefined references to `u8rnd' follow
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang -O3 ref
clang -O3 -march=armv7-a -mfloat-abi=hard -mfpu=neon -fomit-frame-pointer ref
clang -O3 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_encrypt/mceliece/ref
Compiler: clang -O3 -mavx
decrypt.c: clang: warning: argument unused during compilation: '-mavx'
encrypt.c: clang: warning: argument unused during compilation: '-mavx'
gf.c: clang: warning: argument unused during compilation: '-mavx'
keypair.c: clang: warning: argument unused during compilation: '-mavx'
mat.c: clang: warning: argument unused during compilation: '-mavx'
misc.c: clang: warning: argument unused during compilation: '-mavx'
misc.c: misc.c:6:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
misc.c: __inline int u8rnd() { char c; randombytes(&c,1); return 255 & (int) c; }
misc.c: ^~
misc.c: /home/djb/benchmarking/supercop-20121016/supercop-data/h7silver/armeabi/include/randombytes.h:4:40: note: passing argument to parameter here
misc.c: extern void randombytes(unsigned char *,unsigned long long);
misc.c: ^
misc.c: 1 warning generated.
poly.c: clang: warning: argument unused during compilation: '-mavx'
useshort.c: clang: warning: argument unused during compilation: '-mavx'
try.c: crypto_encrypt_mceliece.a(keypair.o): In function `gop_supr':
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o): In function `crypto_encrypt_mceliece_ref_keypair':
try.c: keypair.c:(.text+0x...): undefined reference to `u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o):keypair.c:(.text+0x...): more undefined references to `u8rnd' follow
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -mavx ref

Compiler output

Implementation: crypto_encrypt/mceliece/ref
Compiler: gcc -mcpu=arm810 -O2 -fomit-frame-pointer
decrypt.c: decrypt.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
encrypt.c: encrypt.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
gf.c: gf.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
keypair.c: keypair.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
mat.c: mat.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
misc.c: misc.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
poly.c: poly.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
useshort.c: useshort.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
try.c: try.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
try.c: try-anything.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
measure.c: measure.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]
measure.c: measure-anything.c:1:0: warning: target CPU does not support THUMB instructions [enabled by default]

Number of similar (compiler,implementation) pairs: 20, namely:
CompilerImplementations
gcc -mcpu=arm810 -O2 -fomit-frame-pointer ref
gcc -mcpu=arm810 -O3 -fomit-frame-pointer ref
gcc -mcpu=arm810 -O -fomit-frame-pointer ref
gcc -mcpu=arm810 -Os -fomit-frame-pointer ref
gcc -mcpu=arm8 -O2 -fomit-frame-pointer ref
gcc -mcpu=arm8 -O3 -fomit-frame-pointer ref
gcc -mcpu=arm8 -O -fomit-frame-pointer ref
gcc -mcpu=arm8 -Os -fomit-frame-pointer ref
gcc -mcpu=strongarm1100 -O2 -fomit-frame-pointer ref
gcc -mcpu=strongarm1100 -O3 -fomit-frame-pointer ref
gcc -mcpu=strongarm1100 -O -fomit-frame-pointer ref
gcc -mcpu=strongarm1100 -Os -fomit-frame-pointer ref
gcc -mcpu=strongarm110 -O2 -fomit-frame-pointer ref
gcc -mcpu=strongarm110 -O3 -fomit-frame-pointer ref
gcc -mcpu=strongarm110 -O -fomit-frame-pointer ref
gcc -mcpu=strongarm110 -Os -fomit-frame-pointer ref
gcc -mcpu=strongarm -O2 -fomit-frame-pointer ref
gcc -mcpu=strongarm -O3 -fomit-frame-pointer ref
gcc -mcpu=strongarm -O -fomit-frame-pointer ref
gcc -mcpu=strongarm -Os -fomit-frame-pointer ref