Implementation notes: aarch64, hikey960, crypto_kem/sikep503

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: sikep503
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
40799481566412 0 083276 944 1600optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
40813219466704 0 083572 944 1600optgcc_-O3_-fomit-frame-pointer2019121120190816
42001290053248 0 069272 824 1584optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
44933340575232 0 093748 944 1600optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
49704412542768 0 061044 944 1568optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
49953330023636 0 038884 944 1568optgcc_-O2_-fomit-frame-pointer2019121120190816
50369580023648 0 038852 944 1568optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
51018397641664 0 059900 944 1568optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
54418027522900 0 038212 944 1568optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
60765013153248 0 069272 824 1584optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
67415850018748 0 033320 928 1568optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
69491272518672 0 033224 928 1568optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
70413814618672 0 033224 928 1568optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
74237355075156 0 093636 944 1600optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
81206808453248 0 069272 824 1584optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
81279472553248 0 069256 824 1584optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
86023815766596 0 083436 944 1600optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
88856320923568 0 038812 944 1568optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
100027768518748 0 033320 928 1568optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
102131404231340 0 053744 928 1568optcc2019121120190816
111060930322864 0 038180 944 1568optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
112169953541240 0 059748 944 1568optgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
117448637541240 0 059748 944 1568optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
119401312522900 0 038212 944 1568optgcc_-O_-fomit-frame-pointer2019121120190816
168483847518672 0 033224 928 1568optgcc_-Os_-fomit-frame-pointer2019121120190816
187150162531340 0 053744 928 1568optgcc2019121120190816
343968414334641 768 0228481 1864 1576refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
347354627633627 0 0223691 984 1592refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
351722385034937 768 0229041 1864 1576refgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
644993527557393 768 0251521 1864 1608refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
645475839834629 768 0228513 1864 1576refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
646103250030353 768 0221201 1864 1576refgcc_-O2_-fomit-frame-pointer2019121120190816
646715137528799 768 0218925 1848 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
651528652528807 768 0218941 1848 1576refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
652055269352541 768 0245009 1864 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
653846332530349 768 0221185 1864 1576refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
657111649134937 768 0229041 1864 1576refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
666052940543462 768 0237469 1848 1576refgcc2019121120190816
666954045043462 768 0237469 1848 1576refgcc_-funroll-loops2019121120190816
805322634633627 0 0223691 984 1592refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
806454517033627 0 0223691 984 1592refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
814764732143462 768 0237469 1848 1576refcc2019121120190816
839485758031340 0 053744 928 1568optgcc_-funroll-loops2019121120190816
905475753028767 768 0218925 1848 1576refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
909993693452393 768 0244849 1864 1608refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
911901991033655 0 0223707 984 1592refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
1288024706628767 768 0218925 1848 1576refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816

Test failure

Implementation: ref
Security model: unknown
Compiler: gcc -O3 -fomit-frame-pointer
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 7, namely:
CompilerImplementations
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: ms
Security model: unknown
Compiler: cc
fp_x64_asm.S: fp_x64_asm.S: Assembler messages:
fp_x64_asm.S: fp_x64_asm.S:7: Error: unknown pseudo-op: `.intel_syntax'
fp_x64_asm.S: fp_x64_asm.S:63: Error: unknown mnemonic `push' -- `push r12'
fp_x64_asm.S: fp_x64_asm.S:64: Error: unknown mnemonic `push' -- `push r13'
fp_x64_asm.S: fp_x64_asm.S:65: Error: unknown mnemonic `push' -- `push r14'
fp_x64_asm.S: fp_x64_asm.S:66: Error: unknown mnemonic `push' -- `push r15'
fp_x64_asm.S: fp_x64_asm.S:68: Error: unknown mnemonic `xor' -- `xor rax,rax'
fp_x64_asm.S: fp_x64_asm.S:69: Error: operand 1 must be an integer register -- `mov r8,[rdi]'
fp_x64_asm.S: fp_x64_asm.S:70: Error: operand 1 must be an integer register -- `mov r9,[rdi+8]'
fp_x64_asm.S: fp_x64_asm.S:71: Error: operand 1 must be an integer register -- `mov r10,[rdi+16]'
fp_x64_asm.S: fp_x64_asm.S:72: Error: operand 1 must be an integer register -- `mov r11,[rdi+24]'
fp_x64_asm.S: fp_x64_asm.S:73: Error: operand 1 must be an integer register -- `mov r12,[rdi+32]'
fp_x64_asm.S: fp_x64_asm.S:74: Error: operand 1 must be an integer register -- `mov r13,[rdi+40]'
fp_x64_asm.S: fp_x64_asm.S:75: Error: operand 1 must be an integer register -- `mov r14,[rdi+48]'
fp_x64_asm.S: fp_x64_asm.S:76: Error: operand 1 must be an integer register -- `mov r15,[rdi+56]'
fp_x64_asm.S: fp_x64_asm.S:77: Error: operand 1 must be an integer or stack pointer register -- `add r8,[rsi]'
fp_x64_asm.S: fp_x64_asm.S:78: Error: operand 1 must be an integer register -- `adc r9,[rsi+8]'
fp_x64_asm.S: fp_x64_asm.S:79: Error: operand 1 must be an integer register -- `adc r10,[rsi+16]'
fp_x64_asm.S: fp_x64_asm.S:80: Error: operand 1 must be an integer register -- `adc r11,[rsi+24]'
fp_x64_asm.S: fp_x64_asm.S:81: Error: operand 1 must be an integer register -- `adc r12,[rsi+32]'
fp_x64_asm.S: fp_x64_asm.S:82: Error: operand 1 must be an integer register -- `adc r13,[rsi+40]'
fp_x64_asm.S: fp_x64_asm.S:83: Error: operand 1 must be an integer register -- `adc r14,[rsi+48]'
fp_x64_asm.S: fp_x64_asm.S:84: Error: operand 1 must be an integer register -- `adc r15,[rsi+56]'
fp_x64_asm.S: fp_x64_asm.S:86: Error: operand 1 must be an integer register -- `mov rcx,0xFFFFFFFFFFFFFFFE'
fp_x64_asm.S: fp_x64_asm.S:87: Error: operand 1 must be an integer or stack pointer register -- `sub r8,rcx'
fp_x64_asm.S: ...

Number of similar (compiler,implementation) pairs: 23, namely:
CompilerImplementations
cc ms
gcc ms
gcc -O2 -fomit-frame-pointer ms
gcc -O3 -fomit-frame-pointer ms
gcc -O -fomit-frame-pointer ms
gcc -Os -fomit-frame-pointer ms
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ms
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ms
gcc -fno-schedule-insns -O -fomit-frame-pointer ms
gcc -fno-schedule-insns -Os -fomit-frame-pointer ms
gcc -funroll-loops ms
gcc -funroll-loops -O2 -fomit-frame-pointer ms
gcc -funroll-loops -O3 -fomit-frame-pointer ms
gcc -funroll-loops -O -fomit-frame-pointer ms
gcc -funroll-loops -Os -fomit-frame-pointer ms
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ms
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ms
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ms
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ms
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ms
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ms
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ms
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ms

Compiler output

Implementation: ms
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
fp_x64_asm.S: fp_x64_asm.S:7:1: error: unknown directive
fp_x64_asm.S: .intel_syntax noprefix
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:63:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r12
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:64:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r13
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:65:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r14
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:66:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r15
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:68:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: xor rax, rax
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:69:7: error: invalid operand for instruction
fp_x64_asm.S: mov r8, [rdi]
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:70:7: error: invalid operand for instruction
fp_x64_asm.S: mov r9, [rdi+8]
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:71:7: error: invalid operand for instruction
fp_x64_asm.S: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ms
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ms
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ms
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ms

Compiler output

Implementation: x64
Security model: unknown
Compiler: cc
fp_x64_asm.S: fp_x64_asm.S: Assembler messages:
fp_x64_asm.S: fp_x64_asm.S:7: Error: unknown pseudo-op: `.intel_syntax'
fp_x64_asm.S: fp_x64_asm.S:37: Error: unknown mnemonic `push' -- `push r12'
fp_x64_asm.S: fp_x64_asm.S:38: Error: unknown mnemonic `push' -- `push r13'
fp_x64_asm.S: fp_x64_asm.S:39: Error: unknown mnemonic `push' -- `push r14'
fp_x64_asm.S: fp_x64_asm.S:40: Error: unknown mnemonic `push' -- `push r15'
fp_x64_asm.S: fp_x64_asm.S:42: Error: unknown mnemonic `xor' -- `xor rax,rax'
fp_x64_asm.S: fp_x64_asm.S:43: Error: operand 1 must be an integer register -- `mov r8,[rdi]'
fp_x64_asm.S: fp_x64_asm.S:44: Error: operand 1 must be an integer register -- `mov r9,[rdi+8]'
fp_x64_asm.S: fp_x64_asm.S:45: Error: operand 1 must be an integer register -- `mov r10,[rdi+16]'
fp_x64_asm.S: fp_x64_asm.S:46: Error: operand 1 must be an integer register -- `mov r11,[rdi+24]'
fp_x64_asm.S: fp_x64_asm.S:47: Error: operand 1 must be an integer register -- `mov r12,[rdi+32]'
fp_x64_asm.S: fp_x64_asm.S:48: Error: operand 1 must be an integer register -- `mov r13,[rdi+40]'
fp_x64_asm.S: fp_x64_asm.S:49: Error: operand 1 must be an integer register -- `mov r14,[rdi+48]'
fp_x64_asm.S: fp_x64_asm.S:50: Error: operand 1 must be an integer register -- `mov r15,[rdi+56]'
fp_x64_asm.S: fp_x64_asm.S:51: Error: operand 1 must be an integer or stack pointer register -- `add r8,[rsi]'
fp_x64_asm.S: fp_x64_asm.S:52: Error: operand 1 must be an integer register -- `adc r9,[rsi+8]'
fp_x64_asm.S: fp_x64_asm.S:53: Error: operand 1 must be an integer register -- `adc r10,[rsi+16]'
fp_x64_asm.S: fp_x64_asm.S:54: Error: operand 1 must be an integer register -- `adc r11,[rsi+24]'
fp_x64_asm.S: fp_x64_asm.S:55: Error: operand 1 must be an integer register -- `adc r12,[rsi+32]'
fp_x64_asm.S: fp_x64_asm.S:56: Error: operand 1 must be an integer register -- `adc r13,[rsi+40]'
fp_x64_asm.S: fp_x64_asm.S:57: Error: operand 1 must be an integer register -- `adc r14,[rsi+48]'
fp_x64_asm.S: fp_x64_asm.S:58: Error: operand 1 must be an integer register -- `adc r15,[rsi+56]'
fp_x64_asm.S: fp_x64_asm.S:60: Error: operand 1 must be an integer register -- `mov rcx,0xFFFFFFFFFFFFFFFE'
fp_x64_asm.S: fp_x64_asm.S:61: Error: operand 1 must be an integer or stack pointer register -- `sub r8,rcx'
fp_x64_asm.S: ...

Number of similar (compiler,implementation) pairs: 23, namely:
CompilerImplementations
cc x64
gcc x64
gcc -O2 -fomit-frame-pointer x64
gcc -O3 -fomit-frame-pointer x64
gcc -O -fomit-frame-pointer x64
gcc -Os -fomit-frame-pointer x64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer x64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer x64
gcc -fno-schedule-insns -O -fomit-frame-pointer x64
gcc -fno-schedule-insns -Os -fomit-frame-pointer x64
gcc -funroll-loops x64
gcc -funroll-loops -O2 -fomit-frame-pointer x64
gcc -funroll-loops -O3 -fomit-frame-pointer x64
gcc -funroll-loops -O -fomit-frame-pointer x64
gcc -funroll-loops -Os -fomit-frame-pointer x64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer x64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer x64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer x64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer x64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv x64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv x64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv x64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv x64

Compiler output

Implementation: x64
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
fp_x64_asm.S: fp_x64_asm.S:7:1: error: unknown directive
fp_x64_asm.S: .intel_syntax noprefix
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:37:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r12
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:38:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r13
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:39:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r14
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:40:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: push r15
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:42:3: error: unrecognized instruction mnemonic
fp_x64_asm.S: xor rax, rax
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:43:7: error: invalid operand for instruction
fp_x64_asm.S: mov r8, [rdi]
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:44:7: error: invalid operand for instruction
fp_x64_asm.S: mov r9, [rdi+8]
fp_x64_asm.S: ^
fp_x64_asm.S: fp_x64_asm.S:45:7: error: invalid operand for instruction
fp_x64_asm.S: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments x64
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments x64
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments x64
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments x64