Implementation notes: mipso32, loongson, crypto_sign/ed448goldilocks

Computer: loongson
Architecture: mipso32
CPU ID: unknown CPU ID
SUPERCOP version: 20161026
Operation: crypto_sign
Primitive: ed448goldilocks
TimeImplementationCompilerBenchmark dateSUPERCOP version
330936464gcc -funroll-loops -march=loongson2f -mabi=n32 -O32016122120161026
350041664gcc -march=loongson2f -mabi=n32 -O32016122120161026
408301464gcc -funroll-loops -march=loongson2f -mabi=n32 -O22016122120161026
436236064gcc -funroll-loops -march=loongson2f -mabi=n32 -Os2016122120161026
447543864gcc -march=loongson2f -mabi=n32 -Os2016122120161026
483596664gcc -march=loongson2f -mabi=n32 -O22016122120161026
8141414arm32gcc -funroll-loops -march=loongson2f -mabi=n32 -O32016122120161026
8459720arm32gcc -march=loongson2f -mabi=n32 -O32016122120161026
8692840arm32gcc -funroll-loops -march=loongson2f -mabi=n32 -O22016122120161026
9525164arm32gcc -march=loongson2f -mabi=n32 -O22016122120161026
9662556arm32gcc -funroll-loops -march=loongson2f -mabi=n32 -Os2016122120161026
9843502arm32gcc -march=loongson2f -mabi=n32 -Os2016122120161026
1332697432gcc -march=loongson2f -mabi=n32 -O32016122120161026
1353871232gcc -funroll-loops -march=loongson2f -mabi=n32 -O32016122120161026
1429045832gcc -funroll-loops -march=loongson2f -mabi=n32 -O22016122120161026
1486557032gcc -march=loongson2f -mabi=n32 -O22016122120161026
1680607832gcc -funroll-loops -march=loongson2f -mabi=n32 -Os2016122120161026
1707857032gcc -march=loongson2f -mabi=n32 -Os2016122120161026

Compiler output

Implementation: crypto_sign/ed448goldilocks/neon
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -O2
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: error: incompatible types when initializing type 'uint32x2_t' using type 'int'
crandom.c: tmp = vshr_n_u32(aa[7],28);
crandom.c: ^
crandom.c: p448.h:318:15: error: incompatible types when assigning to type 'uint32x2_t' from type 'int'
crandom.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: ^

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=loongson2f -mabi=n32 -O2 neon
gcc -funroll-loops -march=loongson2f -mabi=n32 -O3 neon
gcc -funroll-loops -march=loongson2f -mabi=n32 -Os neon
gcc -march=loongson2f -mabi=n32 -O2 neon
gcc -march=loongson2f -mabi=n32 -O3 neon
gcc -march=loongson2f -mabi=n32 -Os neon

Compiler output

Implementation: crypto_sign/ed448goldilocks/32
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -O2
ec_point.c: ec_point.c: In function 'elligator_2s_inject':
ec_point.c: ec_point.c:864:5: warning: this decimal constant is unsigned only in ISO C90
ec_point.c: p448_mulw ( &L3, &L2, 3054649120 );
ec_point.c: ^

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
gcc -funroll-loops -march=loongson2f -mabi=n32 -O2 32 64 arm32
gcc -funroll-loops -march=loongson2f -mabi=n32 -O3 32 64 arm32
gcc -funroll-loops -march=loongson2f -mabi=n32 -Os 32 64 arm32
gcc -march=loongson2f -mabi=n32 -O2 32 64 arm32
gcc -march=loongson2f -mabi=n32 -O3 32 64 arm32
gcc -march=loongson2f -mabi=n32 -Os 32 64 arm32

Compiler output

Implementation: crypto_sign/ed448goldilocks/amd64
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -O2
ec_point.c: ec_point.c: In function 'elligator_2s_inject':
ec_point.c: ec_point.c:864:5: warning: this decimal constant is unsigned only in ISO C90
ec_point.c: p448_mulw ( &L3, &L2, 3054649120 );
ec_point.c: ^
p448.c: In file included from p448.c:6:0:
p448.c: x86-64-arith.h: In function 'p448_mul':
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rax' in 'asm'
p448.c: ...
p448.c: ^
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rax' in 'asm'

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -funroll-loops -march=loongson2f -mabi=n32 -O2 amd64
gcc -funroll-loops -march=loongson2f -mabi=n32 -O3 amd64
gcc -march=loongson2f -mabi=n32 -O2 amd64
gcc -march=loongson2f -mabi=n32 -O3 amd64

Compiler output

Implementation: crypto_sign/ed448goldilocks/amd64
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -Os
ec_point.c: ec_point.c: In function 'elligator_2s_inject':
ec_point.c: ec_point.c:864:5: warning: this decimal constant is unsigned only in ISO C90
ec_point.c: p448_mulw ( &L3, &L2, 3054649120 );
ec_point.c: ^
p448.c: In file included from p448.c:6:0:
p448.c: x86-64-arith.h: In function 'mac':
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:94:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h: In function 'mac_rm':
p448.c: x86-64-arith.h:153:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: ...
p448.c: x86-64-arith.h:208:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h: In function 'p448_sqr':
p448.c: x86-64-arith.h:234:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:234:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h:234:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:234:3: error: unknown register name 'rax' in 'asm'

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -funroll-loops -march=loongson2f -mabi=n32 -Os amd64
gcc -march=loongson2f -mabi=n32 -Os amd64