Implementation notes: aarch64, hikey960, crypto_kem/hqc2563

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: hqc2563
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
88652349497 0 024705 976 1624optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
1140525037146 0 056383 1000 1656optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
1357970630378 0 047943 1000 1656optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
1363635030306 0 047887 1000 1656optgcc_-O3_-fomit-frame-pointer2019120920190816
1428570037114 0 056311 1000 1656optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
1715307330422 0 047983 1000 1656optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
1721610017674 0 036829 992 1624optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
1746585010358 0 026245 992 1624optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
1788210010414 0 026373 992 1624optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
1811243717434 0 036357 992 1624optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
181901259505 0 024689 976 1624optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
209283489497 0 024705 976 1624optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
2443322117674 0 036829 992 1624optgcc_-funroll-loops_-O_-fomit-frame-pointer2019120920190816
2467542010470 0 026333 992 1624optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
2536627511504 32 551134267 3232 6304refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
2593683810430 0 026381 992 1624optgcc_-O_-fomit-frame-pointer2019120920190816
3361962017526 0 036421 992 1624optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
3694851411488 32 551126115 3232 6304refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
3704342431567 32 551150077 3248 6336refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
3818755919557 32 551137959 3248 6304refg++_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
4066143012389 32 551127695 3248 6304refg++_-O2_-fomit-frame-pointer2019120920190816
420546269505 0 024689 976 1624optgcc_-Os_-fomit-frame-pointer2019120920190816
429538349505 0 024689 976 1624optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
4517423624235 32 551141101 3248 6336refg++_-O3_-fomit-frame-pointer2019120920190816
4590976011496 32 551134267 3232 6304refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
4657321924363 32 551141229 3248 6336refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
4664764313469 24 551126313 3368 6304refclang++_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
4850145010430 0 026381 992 1624optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
5274105519877 32 551142615 3248 6304refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
5329669410350 0 026245 992 1624optgcc_-O2_-fomit-frame-pointer2019120920190816
5335515920156 32 551138799 3232 6304refg++2019120920190816
5501936115697 24 551128521 3368 6304refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2019120920190816
5583194412481 32 551136111 3248 6304refg++_-O_-fomit-frame-pointer2019120920190816
5616427711496 32 551134267 3232 6304refg++_-Os_-fomit-frame-pointer2019120920190816
6025635017918 0 036881 976 1624optgcc2019120920190816
6140733012405 32 551127655 3248 6304refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
6633789312481 32 551136111 3248 6304refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
6743478423975 32 551140829 3248 6336refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
6857009512409 32 551127711 3248 6304refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
7604736317918 0 036881 976 1624optgcc_-funroll-loops2019120920190816
10283040017918 0 036881 976 1624optcc2019120920190816
11723094612461 32 551127903 3248 6304refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
11766893413469 24 551126313 3368 6304refclang++_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
12264624513469 24 551126313 3368 6304refclang++_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
gf2x_avx2.c: gf2x_avx2.c:76:42: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: const v8uint32 rightPerm = countVector + distInts;
gf2x_avx2.c: ~~~~~~~~~~~ ^ ~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:77:41: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: const v8uint32 leftPerm = countVector + distInts + 1;
gf2x_avx2.c: ~~~~~~~~~~~ ^ ~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:87:19: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
gf2x_avx2.c: rightVector = __builtin_shuffle(
gf2x_avx2.c: ^
gf2x_avx2.c: gf2x_avx2.c:87:17: error: assigning to 'v8uint32' (vector of 8 'uint32_t' values) from incompatible type 'int'
gf2x_avx2.c: rightVector = __builtin_shuffle(
gf2x_avx2.c: ^ ~~~~~~~~~~~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:89:16: error: assigning to 'v8uint32' (vector of 8 'uint32_t' values) from incompatible type 'int'
gf2x_avx2.c: leftVector = __builtin_shuffle(
gf2x_avx2.c: ^ ~~~~~~~~~~~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:92:26: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: shifted = rightVector>>distBits | leftVector<<minDistBits;
gf2x_avx2.c: ~~~~~~~~~~~^ ~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:92:49: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: shifted = rightVector>>distBits | leftVector<<minDistBits;
gf2x_avx2.c: ~~~~~~~~~~^ ~~~~~~~~~~~
gf2x_avx2.c: 7 errors generated.

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
rng.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated

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