Implementation notes: x86, floodyberry, crypto_dh/kumfp61e2g

Computer: floodyberry
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_dh
Primitive: kumfp61e2g

Compiler output

Implementation: crypto_dh/kumfp61e2g/v01/var
Compiler: clang -O1 -march=native -m32 -fomit-frame-pointer
smul.c: In file included from smul.c:13:
smul.c: ./finite128.h:511:13: warning: inline function 'kum_fp_dbl_2e061m1e2_g_x8664_asm' is not defined [-Wundefined-inline]
smul.c: inline void kum_fp_dbl_2e061m1e2_g_x8664_asm(uni TMP, void *NOPARAM1, void *NOPARAM2, uni d1, void *NOPARAM3, uni CNS);
smul.c: ^
smul.c: smul.c:30:2: note: used here
smul.c: kum_fp_dbl_2e061m1e2_g_x8664_asm((uni)t, NULL, NULL, (uni)d1, NULL, (uni)cn);
smul.c: ^
smul.c: In file included from smul.c:13:
smul.c: In file included from ./finite128.h:5:
smul.c: ./fpx.h:23:13: warning: inline function 'fp_cnt_bits' is not defined [-Wundefined-inline]
smul.c: inline void fp_cnt_bits(int *bc, const uni an, const uni_t al);
smul.c: ^
smul.c: smul.c:31:2: note: used here
smul.c: fp_cnt_bits(&i, kn, 2*FP_LEN);
smul.c: ^
smul.c: In file included from smul.c:13:
smul.c: ./finite128.h:512:13: warning: inline function 'kum_fp_dbladd_2e061m1e2_g_x8664_asm' is not defined [-Wundefined-inline]
smul.c: inline void kum_fp_dbladd_2e061m1e2_g_x8664_asm(uni TMP, uni kn, uni_t i, uni d1, uni d2, uni CNS);
smul.c: ^
smul.c: smul.c:33:3: note: used here
smul.c: kum_fp_dbladd_2e061m1e2_g_x8664_asm((uni)t, kn, j, (uni)d1, (uni)d2, (uni)cn);
smul.c: ^
smul.c: 3 warnings generated.
divisor_dbl.s: clang: warning: argument unused during compilation: '-fomit-frame-pointer'
divisor_dbl.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
divisor_dbl.s: clang: warning: argument unused during compilation: '-I .'
divisor_dbl.s: clang: warning: argument unused during compilation: '-I /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include'
divisor_dbl.s: divisor_dbl.s:9:8: error: register %rbx is only available in 64-bit mode
divisor_dbl.s: pushq %rbx
divisor_dbl.s: ^~~~
divisor_dbl.s: divisor_dbl.s:10:8: error: register %r12 is only available in 64-bit mode
divisor_dbl.s: pushq %r12
divisor_dbl.s: ^~~~
divisor_dbl.s: divisor_dbl.s:11:8: error: register %r13 is only available in 64-bit mode
divisor_dbl.s: pushq %r13
divisor_dbl.s: ^~~~
divisor_dbl.s: divisor_dbl.s:12:8: error: register %r14 is only available in 64-bit mode
divisor_dbl.s: pushq %r14
divisor_dbl.s: ^~~~
divisor_dbl.s: divisor_dbl.s:13:8: error: register %r15 is only available in 64-bit mode
divisor_dbl.s: pushq %r15
divisor_dbl.s: ^~~~
divisor_dbl.s: divisor_dbl.s:14:28: error: register %rsi is only available in 64-bit mode
divisor_dbl.s: movq $0x1FFFFFFFFFFFFFFF, %rsi
divisor_dbl.s: ^~~~
divisor_dbl.s: divisor_dbl.s:15:8: error: register %rcx is only available in 64-bit mode
divisor_dbl.s: movq (%rcx), %rax
divisor_dbl.s: ^~~~
divisor_dbl.s: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O1 -march=native -m32 -fomit-frame-pointer v01/var
clang -O3 -march=native -m32 -fomit-frame-pointer v01/var

Compiler output

Implementation: crypto_dh/kumfp61e2g/v01/var
Compiler: gcc -m32 -O2 -fomit-frame-pointer
divisor_dbl.s: divisor_dbl.s: Assembler messages:
divisor_dbl.s: divisor_dbl.s:9: Error: bad register name `%rbx'
divisor_dbl.s: divisor_dbl.s:10: Error: bad register name `%r12'
divisor_dbl.s: divisor_dbl.s:11: Error: bad register name `%r13'
divisor_dbl.s: divisor_dbl.s:12: Error: bad register name `%r14'
divisor_dbl.s: divisor_dbl.s:13: Error: bad register name `%r15'
divisor_dbl.s: divisor_dbl.s:14: Error: bad register name `%rsi'
divisor_dbl.s: divisor_dbl.s:15: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:16: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:17: Error: bad register name `%rax'
divisor_dbl.s: divisor_dbl.s:18: Error: bad register name `%rax'
divisor_dbl.s: divisor_dbl.s:19: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:20: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:21: Error: bad register name `%r11'
divisor_dbl.s: divisor_dbl.s:22: Error: bad register name `%r11'
divisor_dbl.s: divisor_dbl.s:23: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:24: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:25: Error: bad register name `%r12'
divisor_dbl.s: divisor_dbl.s:26: Error: bad register name `%rsi'
divisor_dbl.s: divisor_dbl.s:27: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:28: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:29: Error: bad register name `%r13'
divisor_dbl.s: divisor_dbl.s:30: Error: bad register name `%rsi'
divisor_dbl.s: divisor_dbl.s:31: Error: bad register name `%rcx)'
divisor_dbl.s: divisor_dbl.s:32: Error: bad register name `%rcx)'
divisor_dbl.s: ...

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -m32 -O2 -fomit-frame-pointer v01/var
gcc -m32 -O3 -fomit-frame-pointer v01/var
gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer v01/var
gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer v01/var
icc -m32 -O1 -static -xHost -fomit-frame-pointer v01/var
icc -m32 -O3 -static -xHost -fomit-frame-pointer v01/var