Implementation notes: armeabi, odroid, crypto_scalarmult/curve25519

Computer: odroid
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160806
Operation: crypto_scalarmult
Primitive: curve25519
TimeImplementationCompilerBenchmark dateSUPERCOP version
2266308neon2gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016082420160806
2266362neon2gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016082420160806
2266376neon2gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016082420160806
2266396neon2gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016082420160806
4797357ref10clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082420160806
5317896ref10gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016082420160806
6377925ref10gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016082420160806
6524151ref10gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016082420160806
17807802ref10gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016082420160806
62762070refgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016082420160806
67005929refgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016082420160806
71712697refgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016082420160806
74125663refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082420160806
74817746refgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016082420160806

Compiler output

Implementation: crypto_scalarmult/curve25519/neon2
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
scalarmult.s: scalarmult.s:578:1: error: out of range pc-relative fixup value
scalarmult.s: ldr r4,=0
scalarmult.s: ^
scalarmult.s: scalarmult.s:583:1: error: out of range pc-relative fixup value
scalarmult.s: ldr r5,=254
scalarmult.s: ^
scalarmult.s: scalarmult.s:675:1: error: out of range pc-relative fixup value
scalarmult.s: ldr r7,=960
scalarmult.s: ^

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments neon2

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
smult.c: Stack dump:
smult.c: 0. Program arguments: /usr/bin/clang-3.8 -cc1 -triple armv7-unknown-linux-gnueabihf -emit-obj -disable-free -disable-llvm-verifier -main-file-name smult.c -mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu cortex-a9 -target-feature -fp-only-sp -target-feature -d16 -target-feature +vfp3 -target-feature -fp16 -target-feature -vfp4 -target-feature -fp-armv8 -target-feature +neon -target-feature -crypto -target-abi aapcs-linux -mfloat-abi hard -dwarf-column-info -debugger-tuning=gdb -coverage-file /home/sneves/supercop-20160806/supercop-data/odroid/armeabi/try/c/clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments/crypto_scalarmult/curve25519/donna_c64/work/smult.c -resource-dir /usr/bin/../lib/clang/3.8.1 -D SUPERCOP -I . -I /home/sneves/supercop-20160806/supercop-data/odroid/armeabi/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.8.1/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -fdebug-compilation-dir /home/sneves/supercop-20160806/supercop-data/odroid/armeabi/try/c/clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments/crypto_scalarmult/curve25519/donna_c64/work -ferror-limit 19 -fmessage-length 0 -fwrapv -fallow-half-arguments-and-returns -fno-signed-char -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o smult.o -x c smult.c
smult.c: 1. gt; parser at end of file
smult.c: 2. Code generation
smult.c: 3. Running pass 'Function Pass Manager' on module 'smult.c'.
smult.c: 4. Running pass 'ARM Instruction Selection' on function '@crypto_scalarmult_curve25519_donna_c64'
smult.c: clang-3.8: error: unable to execute command: Segmentation fault (core dumped)
smult.c: clang-3.8: error: clang frontend command failed due to signal (use -v to see invocation)
smult.c: clang version 3.8.1 (tags/RELEASE_381/final)
smult.c: Target: armv7l-unknown-linux-gnueabihf
smult.c: Thread model: posix
smult.c: InstalledDir: /usr/bin
smult.c: clang-3.8: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
smult.c: clang-3.8: note: diagnostic msg:
smult.c: ********************
smult.c:
smult.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
smult.c: Preprocessed source(s) and associated run script(s) are located at:
smult.c: clang-3.8: note: diagnostic msg: /tmp/smult-1a588f.c
smult.c: clang-3.8: note: diagnostic msg: /tmp/smult-1a588f.sh
smult.c: clang-3.8: note: diagnostic msg:
smult.c:
smult.c: ********************

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments donna_c64

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
smult.c: smult.c:34:1: error: unable to emulate 'TI'
smult.c: typedef unsigned uint128_t __attribute__((mode(TI)));
smult.c: ^~~~~~~
smult.c: smult.c: In function 'fscalar_product':
smult.c: smult.c:76:49: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: a = ((uint128_t) in[1]) * scalar + ((limb) (a >gt;>gt; 51));
smult.c: ^~
smult.c: smult.c:79:49: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: a = ((uint128_t) in[2]) * scalar + ((limb) (a >gt;>gt; 51));
smult.c: ^~
smult.c: smult.c:82:49: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: a = ((uint128_t) in[3]) * scalar + ((limb) (a >gt;>gt; 51));
smult.c: ^~
smult.c: smult.c:85:49: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: a = ((uint128_t) in[4]) * scalar + ((limb) (a >gt;>gt; 51));
smult.c: ^~
smult.c: smult.c:88:19: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: output[0] += (a >gt;>gt; 51) * 19;
smult.c: ^~
smult.c: smult.c: In function 'fmul':
smult.c: smult.c:132:70: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: r0 = (limb)t[0] & 0x7ffffffffffff; c = (limb)(t[0] >gt;>gt; 51);
smult.c: ^~
smult.c: smult.c:133:70: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
smult.c: t[1] += c; r1 = (limb)t[1] & 0x7ffffffffffff; c = (limb)(t[1] >gt;>gt; 51);
smult.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv donna_c64
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv donna_c64
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv donna_c64
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv donna_c64