Implementation notes: aarch64, a53, crypto_dh/ed448goldilocks

Computer: a53
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_dh
Primitive: ed448goldilocks
TimeImplementationCompilerBenchmark dateSUPERCOP version
447727564gcc -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv2016080220160731
507991564gcc -mcpu=cortex-a53 -O2 -fomit-frame-pointer -fwrapv2016080220160731
714663064gcc -mcpu=cortex-a53 -Os -fomit-frame-pointer -fwrapv2016080220160731
993120064gcc -mcpu=cortex-a53 -O -fomit-frame-pointer -fwrapv2016080220160731

Test failure

Implementation: crypto_dh/ed448goldilocks/32
Compiler: gcc -mcpu=cortex-a53 -O2 -fomit-frame-pointer -fwrapv
error 111
crypto_dh returns nonzero

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -mcpu=cortex-a53 -O2 -fomit-frame-pointer -fwrapv 32 arm32
gcc -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv 32 arm32
gcc -mcpu=cortex-a53 -O -fomit-frame-pointer -fwrapv 32 arm32
gcc -mcpu=cortex-a53 -Os -fomit-frame-pointer -fwrapv 32 arm32

Compiler output

Implementation: crypto_dh/ed448goldilocks/amd64
Compiler: clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
crandom.c: fatal error: error in backend: Cannot select: 0x23ed7698: i64,ch = ReadCycleCounter 0x23e6adf0 [ORD=2] [ID=10]
crandom.c: In function: crandom_generate
crandom.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
crandom.c: Debian clang version 3.5.2-3~bpo8+2 (tags/RELEASE_352/final) (based on LLVM 3.5.2)
crandom.c: Target: aarch64-unknown-linux-gnu
crandom.c: Thread model: posix
crandom.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://bugs.debian.org/ and include the crash backtrace, preprocessed source, and associated run script.
crandom.c: clang: note: diagnostic msg:
crandom.c: ********************
crandom.c:
crandom.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
crandom.c: Preprocessed source(s) and associated run script(s) are located at:
crandom.c: clang: note: diagnostic msg: /tmp/crandom-ea7e7c.c
crandom.c: clang: note: diagnostic msg: /tmp/crandom-ea7e7c.sh
crandom.c: clang: note: diagnostic msg:
crandom.c:
crandom.c: ********************

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments amd64

Compiler output

Implementation: crypto_dh/ed448goldilocks/32
Compiler: clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
crandom.c: fatal error: error in backend: Cannot select: 0x33203de8: i64,ch = ReadCycleCounter 0x33197270 [ORD=2] [ID=10]
crandom.c: In function: crandom_generate
crandom.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
crandom.c: Debian clang version 3.5.2-3~bpo8+2 (tags/RELEASE_352/final) (based on LLVM 3.5.2)
crandom.c: Target: aarch64-unknown-linux-gnu
crandom.c: Thread model: posix
crandom.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://bugs.debian.org/ and include the crash backtrace, preprocessed source, and associated run script.
crandom.c: clang: note: diagnostic msg:
crandom.c: ********************
crandom.c:
crandom.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
crandom.c: Preprocessed source(s) and associated run script(s) are located at:
crandom.c: clang: note: diagnostic msg: /tmp/crandom-7ea184.c
crandom.c: clang: note: diagnostic msg: /tmp/crandom-7ea184.sh
crandom.c: clang: note: diagnostic msg:
crandom.c:
crandom.c: ********************

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments 32

Compiler output

Implementation: crypto_dh/ed448goldilocks/arm32
Compiler: clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
crandom.c: fatal error: error in backend: Cannot select: 0x3b85b278: i64,ch = ReadCycleCounter 0x3b7ee2a0 [ORD=2] [ID=10]
crandom.c: In function: crandom_generate
crandom.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
crandom.c: Debian clang version 3.5.2-3~bpo8+2 (tags/RELEASE_352/final) (based on LLVM 3.5.2)
crandom.c: Target: aarch64-unknown-linux-gnu
crandom.c: Thread model: posix
crandom.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://bugs.debian.org/ and include the crash backtrace, preprocessed source, and associated run script.
crandom.c: clang: note: diagnostic msg:
crandom.c: ********************
crandom.c:
crandom.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
crandom.c: Preprocessed source(s) and associated run script(s) are located at:
crandom.c: clang: note: diagnostic msg: /tmp/crandom-858ae1.c
crandom.c: clang: note: diagnostic msg: /tmp/crandom-858ae1.sh
crandom.c: clang: note: diagnostic msg:
crandom.c:
crandom.c: ********************

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments arm32

Compiler output

Implementation: crypto_dh/ed448goldilocks/64
Compiler: clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
crandom.c: fatal error: error in backend: Cannot select: 0x3f1e9868: i64,ch = ReadCycleCounter 0x3f17c9a0 [ORD=2] [ID=10]
crandom.c: In function: crandom_generate
crandom.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
crandom.c: Debian clang version 3.5.2-3~bpo8+2 (tags/RELEASE_352/final) (based on LLVM 3.5.2)
crandom.c: Target: aarch64-unknown-linux-gnu
crandom.c: Thread model: posix
crandom.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://bugs.debian.org/ and include the crash backtrace, preprocessed source, and associated run script.
crandom.c: clang: note: diagnostic msg:
crandom.c: ********************
crandom.c:
crandom.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
crandom.c: Preprocessed source(s) and associated run script(s) are located at:
crandom.c: clang: note: diagnostic msg: /tmp/crandom-9e0a06.c
crandom.c: clang: note: diagnostic msg: /tmp/crandom-9e0a06.sh
crandom.c: clang: note: diagnostic msg:
crandom.c:
crandom.c: ********************

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments 64

Compiler output

Implementation: crypto_dh/ed448goldilocks/amd64
Compiler: gcc -mcpu=cortex-a53 -O2 -fomit-frame-pointer -fwrapv
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: 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: 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: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -mcpu=cortex-a53 -O2 -fomit-frame-pointer -fwrapv amd64
gcc -mcpu=cortex-a53 -O3 -fomit-frame-pointer -fwrapv amd64
gcc -mcpu=cortex-a53 -O -fomit-frame-pointer -fwrapv amd64

Compiler output

Implementation: crypto_dh/ed448goldilocks/amd64
Compiler: gcc -mcpu=cortex-a53 -Os -fomit-frame-pointer -fwrapv
p448.c: In file included from p448.c:6:0:
p448.c: x86-64-arith.h: In function 'widemul':
p448.c: x86-64-arith.h:17:3: error: impossible constraint in 'asm'
p448.c: __asm__ volatile
p448.c: ^
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: x86-64-arith.h:153:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h: In function 'mac2':
p448.c: x86-64-arith.h:181:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:181:3: error: unknown register name 'rax' in 'asm'
p448.c: x86-64-arith.h: In function 'msb':
p448.c: x86-64-arith.h:208:3: error: unknown register name 'rdx' in 'asm'
p448.c: __asm__ volatile
p448.c: ^
p448.c: x86-64-arith.h:208:3: error: unknown register name 'rax' in 'asm'
p448.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -mcpu=cortex-a53 -Os -fomit-frame-pointer -fwrapv amd64