Implementation notes: aarch64, hikey960, crypto_kem/hila5

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: hila5
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
44955018145 0 034997 936 1600optgcc_-O3_-fomit-frame-pointer2019120920190816
44955018145 0 034989 936 1600optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
49950017437 0 033456 824 1584optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816
52453819513 0 037989 936 1568optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
54112514953 0 030237 936 1568optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
55777514189 0 028713 920 1568optgcc_-Os_-fomit-frame-pointer2019120920190816
64311518109 0 034933 936 1600optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
68988717437 0 033456 824 1584optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
74092514453 0 029645 936 1568optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
74774023261 0 041717 936 1600optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
76004514949 0 030229 936 1568optgcc_-O_-fomit-frame-pointer2019120920190816
78343114209 0 028753 920 1568optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
79512414201 0 028729 920 1568optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
86580023461 0 041949 936 1600optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
96570019133 0 037397 936 1568optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
96570014469 0 029701 936 1568optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
97402514461 0 029693 936 1568optgcc_-O2_-fomit-frame-pointer2019120920190816
100559819253 0 037477 936 1568optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
104895017849 0 033848 824 1584optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120920190816
109914217437 0 033456 824 1584optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
122776514209 0 028753 920 1568optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
123210014949 0 030229 936 1568optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
149017522373 0 040657 920 1568optgcc2019120920190816
223942519513 0 037989 936 1568optgcc_-funroll-loops_-O_-fomit-frame-pointer2019120920190816
231435014189 0 028713 920 1568optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
238952722373 0 040657 920 1568optcc2019120920190816
329742622373 0 040657 920 1568optgcc_-funroll-loops2019120920190816
299949758773 0 819624792 824 9776refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
314934757853 0 819624551 920 9808refgcc_-O3_-fomit-frame-pointer2019120920190816
3229267510389 0 820028711 920 9760refgcc_-funroll-loops_-O_-fomit-frame-pointer2019120920190816
3230100010389 0 820028711 920 9760refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
3238425014921 0 819633231 920 9808refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
328587757717 0 819624415 920 9808refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
330502504773 0 819619147 904 9760refgcc_-Os_-fomit-frame-pointer2019120920190816
330583834773 0 819619147 904 9760refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
331291544773 0 819619171 904 9760refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
336829505217 0 820020351 920 9760refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
346486509185 0 819625184 824 9776refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120920190816
442346197897 0 819624575 920 9808refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
449712785333 0 819620407 920 9760refgcc_-O2_-fomit-frame-pointer2019120920190816
450063575345 0 819620383 920 9760refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
4546238414877 0 819633223 920 9808refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
459860105125 0 819620199 920 9760refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
463598804785 0 819619163 904 9760refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
5545532311277 0 819629383 920 9760refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
6098190811325 0 819629391 920 9760refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
624874504773 0 819619171 904 9760refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
711288009853 0 819627987 904 9760refgcc2019120920190816
725402755397 0 820020527 920 9760refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
745420505397 0 820020527 920 9760refgcc_-O_-fomit-frame-pointer2019120920190816
760988258773 0 819624792 824 9776refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816
772726508773 0 819624792 824 9776refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
997529839853 0 819627987 904 9760refcc2019120920190816
2541095209853 0 819627987 904 9760refgcc_-funroll-loops2019120920190816

Compiler output

Implementation: avx2
Security model: unknown
Compiler: cc
ms_x64_ntt.S: ms_x64_ntt.S: Assembler messages:
ms_x64_ntt.S: ms_x64_ntt.S:18: Error: unknown pseudo-op: `.intel_syntax'
ms_x64_ntt.S: ms_x64_ntt.S:68: Error: unknown mnemonic `push' -- `push r12'
ms_x64_ntt.S: ms_x64_ntt.S:69: Error: unknown mnemonic `push' -- `push r13'
ms_x64_ntt.S: ms_x64_ntt.S:70: Error: unknown mnemonic `push' -- `push r14'
ms_x64_ntt.S: ms_x64_ntt.S:73: Error: operand 1 must be an integer register -- `mov r9,1'
ms_x64_ntt.S: ms_x64_ntt.S:74: Error: operand 1 must be an integer register -- `mov rax,rdx'
ms_x64_ntt.S: ms_x64_ntt.S:75: Error: operand 1 must be an integer register -- `mov r12,rdx'
ms_x64_ntt.S: ms_x64_ntt.S:76: Error: unknown mnemonic `shr' -- `shr r12,4'
ms_x64_ntt.S: ms_x64_ntt.S:77: Error: unknown mnemonic `vmovdqu' -- `vmovdqu ymm14,MASK12x8'
ms_x64_ntt.S: ms_x64_ntt.S:78: Error: unknown mnemonic `vmovdqu' -- `vmovdqu ymm12,PERM0246'
ms_x64_ntt.S: ms_x64_ntt.S:79: Error: operand 1 must be an integer register -- `mov r14,16'
ms_x64_ntt.S: ms_x64_ntt.S:80: Error: operand 1 must be an integer register -- `mov rcx,11'
ms_x64_ntt.S: ms_x64_ntt.S:82: Error: unknown mnemonic `shr' -- `shr rax,1'
ms_x64_ntt.S: ms_x64_ntt.S:83: Error: unknown mnemonic `dec' -- `dec rcx'
ms_x64_ntt.S: ms_x64_ntt.S:84: Error: unknown mnemonic `xor' -- `xor rdx,rdx'
ms_x64_ntt.S: ms_x64_ntt.S:86: Error: operand 1 must be an integer register -- `mov r10,rdx'
ms_x64_ntt.S: ms_x64_ntt.S:87: Error: operand 1 must be an integer register -- `mov r11,rax'
ms_x64_ntt.S: ms_x64_ntt.S:88: Error: unknown mnemonic `dec' -- `dec r11'
ms_x64_ntt.S: ms_x64_ntt.S:89: Error: operand 1 must be a SIMD scalar register -- `shl r10,cl'
ms_x64_ntt.S: ms_x64_ntt.S:90: Error: operand 1 must be an integer or stack pointer register -- `add r11,r10'
ms_x64_ntt.S: ms_x64_ntt.S:91: Error: operand 1 must be an integer register -- `mov r13,r9'
ms_x64_ntt.S: ms_x64_ntt.S:92: Error: operand 1 must be an integer or stack pointer register -- `add r13,rdx'
ms_x64_ntt.S: ms_x64_ntt.S:93: Error: unknown mnemonic `vbroadcastss' -- `vbroadcastss ymm11,DWORD PTR[rsi+4*r13]'
ms_x64_ntt.S: ms_x64_ntt.S:96: Error: operand 1 must be an integer register -- `mov r13,r10'
ms_x64_ntt.S: ...

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
ms_x64_ntt.S: ms_x64_ntt.S:18:1: error: unknown directive
ms_x64_ntt.S: .intel_syntax noprefix
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:37:12: error: invalid alignment value
ms_x64_ntt.S: .align 32
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:68:3: error: unrecognized instruction mnemonic
ms_x64_ntt.S: push r12
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:69:3: error: unrecognized instruction mnemonic
ms_x64_ntt.S: push r13
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:70:3: error: unrecognized instruction mnemonic
ms_x64_ntt.S: push r14
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:73:7: error: invalid operand for instruction
ms_x64_ntt.S: mov r9, 1
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:74:7: error: invalid operand for instruction
ms_x64_ntt.S: mov rax, rdx
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:75:7: error: invalid operand for instruction
ms_x64_ntt.S: mov r12, rdx
ms_x64_ntt.S: ^
ms_x64_ntt.S: ms_x64_ntt.S:76:3: error: unrecognized instruction mnemonic
ms_x64_ntt.S: ...

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