Implementation notes: amd64, h4atom, crypto_sign/ed448goldilocks

Computer: h4atom
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20160806
Operation: crypto_sign
Primitive: ed448goldilocks
TimeImplementationCompilerBenchmark dateSUPERCOP version
6256624amd64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081420160806
6493392amd64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081420160806
662334464clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081420160806
666936864gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081420160806
673313664gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081420160806
6735272amd64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081420160806
699265664gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081420160806
705771264gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081420160806
16109360arm32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081420160806
2134668832clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081420160806
2249631232gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081420160806
2480525632gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081420160806
2505224832gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081420160806
2678062432gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081420160806

Test failure

Implementation: crypto_sign/ed448goldilocks/amd64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111
crypto_sign is nondeterministic

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv amd64

Test failure

Implementation: crypto_sign/ed448goldilocks/amd64
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv amd64

Compiler output

Implementation: crypto_sign/ed448goldilocks/neon
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
crandom.c: In file included from crandom.c:11:
crandom.c: In file included from ./magic.h:15:
crandom.c: ./p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
crandom.c: tmp = vshr_n_u32(aa[7],28);
crandom.c: ^
crandom.c: ./p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
crandom.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: ^
crandom.c: ./p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' is invalid in C99 [-Wimplicit-function-declaration]
crandom.c: aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
crandom.c: ^
crandom.c: 3 warnings generated.
ec_point.c: In file included from ec_point.c:12:
ec_point.c: In file included from ./ec_point.h:13:
ec_point.c: ./p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
ec_point.c: tmp = vshr_n_u32(aa[7],28);
ec_point.c: ^
ec_point.c: ./p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
ec_point.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
ec_point.c: ^
ec_point.c: ./p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' is invalid in C99 [-Wimplicit-function-declaration]
ec_point.c: aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
ec_point.c: ^
ec_point.c: 3 warnings generated.
goldilocks.c: In file included from goldilocks.c:15:
goldilocks.c: In file included from ./ec_point.h:13:
goldilocks.c: ./p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
goldilocks.c: tmp = vshr_n_u32(aa[7],28);
goldilocks.c: ^
goldilocks.c: ./p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
goldilocks.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
goldilocks.c: ^
goldilocks.c: ./p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' is invalid in C99 [-Wimplicit-function-declaration]
goldilocks.c: aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
goldilocks.c: ^
goldilocks.c: 3 warnings generated.
magic.c: In file included from magic.c:5:
magic.c: In file included from ./field.h:11:
magic.c: In file included from ./magic.h:15:
magic.c: ./p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
magic.c: tmp = vshr_n_u32(aa[7],28);
magic.c: ^
magic.c: ./p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
magic.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
magic.c: ^
magic.c: ./p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' is invalid in C99 [-Wimplicit-function-declaration]
magic.c: aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
magic.c: ^
magic.c: 3 warnings generated.
p448.c: In file included from p448.c:6:
p448.c: ./p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
p448.c: tmp = vshr_n_u32(aa[7],28);
p448.c: ^
p448.c: ./p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' is invalid in C99 [-Wimplicit-function-declaration]
p448.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
p448.c: ^
p448.c: ./p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' is invalid in C99 [-Wimplicit-function-declaration]
p448.c: aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
p448.c: ^
p448.c: p448.c:19:36: error: invalid output constraint '+w' in asm
p448.c: __asm__ ("vadd.s64 %f0, %e0" : "+w"(x));
p448.c: ^
p448.c: p448.c:25:36: error: invalid output constraint '+w' in asm
p448.c: __asm__ ("vswp.s64 %e0, %f0" : "+w"(x));
p448.c: ^
p448.c: p448.c:31:36: error: invalid output constraint '+w' in asm
p448.c: __asm__ ("vswp.s64 %e0, %f0" : "+w"(x));
p448.c: ^
p448.c: p448.c:362:12: error: unknown register name 'q0' in asm
p448.c: :: "q0","q1","q2","q3",
p448.c: ^
p448.c: p448.c:564:12: error: unknown register name 'q0' in asm
p448.c: :: "q0","q1","q2","q3",
p448.c: ^
p448.c: ...

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

Compiler output

Implementation: crypto_sign/ed448goldilocks/arm32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
crandom.c: In file included from magic.h:15:0,
crandom.c: from crandom.c:11:
crandom.c: p448.h: In function 'p448_cond_swap':
crandom.c: p448.h:194:24: error: incompatible types when initializing type 'big_register_t {aka __vector(4) unsigned int}' using type 'mask_t {aka unsigned int}'
crandom.c: big_register_t m = doswap;
crandom.c: ^
crandom.c: p448.h: In function 'p448_cond_neg':
crandom.c: p448.h:270:24: error: incompatible types when initializing type 'big_register_t {aka __vector(4) unsigned int}' using type 'mask_t {aka unsigned int}'
crandom.c: big_register_t m = doNegate;
crandom.c: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv arm32
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv arm32
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv arm32
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv arm32

Compiler output

Implementation: crypto_sign/ed448goldilocks/neon
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
crandom.c: In file included from magic.h:15:0,
crandom.c: from crandom.c:11:
crandom.c: p448.h: In function 'p448_weak_reduce':
crandom.c: p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' [-Wimplicit-function-declaration]
crandom.c: tmp = vshr_n_u32(aa[7],28);
crandom.c: ^
crandom.c: p448.h:314:14: error: incompatible types when initializing type 'uint32x2_t {aka __vector(2) unsigned int}' using type 'int'
crandom.c: p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' [-Wimplicit-function-declaration]
crandom.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: ^
crandom.c: p448.h:318:15: error: incompatible types when assigning to type 'uint32x2_t {aka __vector(2) unsigned int}' from type 'int'
crandom.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: ^
crandom.c: p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' [-Wimplicit-function-declaration]
crandom.c: aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
crandom.c: ^

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