Implementation notes: aarch64, rockpi4, crypto_scalarmult/nistp256

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_scalarmult
Primitive: nistp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
293808212892 30720 034975 31624 1600mj32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
322263912940 30720 034679 31616 1584mj32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
360136014940 30720 035452 31528 1600mj32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120120190816
401972910924 30720 031719 31624 1600mj32gcc_-O3_-fomit-frame-pointer2019120120190816
405318212756 30720 034919 31624 1600mj32gcc_-funroll-loops_-O3_-fomit-frame-pointer2019120120190816
409324311056 30720 031951 31624 1600mj32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120120190816
434393411044 30720 031775 31624 1600mj32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
442983812712 30720 034399 31616 1584mj32gcc_-funroll-loops_-O2_-fomit-frame-pointer2019120120190816
459669014776 30720 036511 31616 1584mj32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
483375215040 30720 035548 31528 1600mj32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019120120190816
52884659708 30720 029327 31616 1584mj32gcc_-O2_-fomit-frame-pointer2019120120190816
531489714940 30720 035452 31528 1600mj32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120120190816
531489714940 30720 035452 31528 1600mj32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120120190816
537313014940 30720 035388 31528 1600mj32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120120190816
55255279276 30720 026879 31600 1568mj32gcc_-funroll-loops_-Os_-fomit-frame-pointer2019120120190816
62131729276 30720 026815 31600 1568mj32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
101804509788 30720 029519 31616 1584mj32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120120190816
104179259820 30720 029319 31616 1584mj32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
1108368114776 30720 036511 31616 1584mj32gcc_-funroll-loops_-O_-fomit-frame-pointer2019120120190816
1112456810968 30720 029479 31616 1584mj32gcc_-O_-fomit-frame-pointer2019120120190816
116081919276 30720 026879 31600 1568mj32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
121550039272 30720 026815 31600 1568mj32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120120190816
121925869276 30720 026815 31600 1568mj32gcc_-Os_-fomit-frame-pointer2019120120190816
1909712010964 30720 029479 31616 1584mj32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120120190816
1938456810968 30720 029479 31616 1584mj32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
5821111125452 30720 047775 31600 1584mj32gcc_-funroll-loops2019120120190816
10600636225452 30720 047775 31600 1584mj32gcc2019120120190816
10631033025452 30720 047775 31600 1584mj32cc2019120120190816

Compiler output

Implementation: mj32
Security model: unknown
Compiler: cc
gep256.c: gep256.c: In function 'isneutral':
gep256.c: gep256.c:83:28: warning: 'sizeof' on array function parameter 'p' will return size of 'crypto_uint32 (*)[8]' {aka 'unsigned int (*)[8]'} [-Wsizeof-array-argument]
gep256.c: for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: ^
gep256.c: gep256.c:78:29: note: declared here
gep256.c: static int isneutral(gep256 p) {
gep256.c: ~~~~~~~^
gep256.c: gep256.c: In function 'isneutral_precomp':
gep256.c: gep256.c:92:28: warning: 'sizeof' on array function parameter 'p' will return size of 'crypto_uint32 (*)[8]' {aka 'unsigned int (*)[8]'} [-Wsizeof-array-argument]
gep256.c: for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: ^
gep256.c: gep256.c:87:45: note: declared here
gep256.c: static int isneutral_precomp(gep256_precomp p) {
gep256.c: ~~~~~~~~~~~~~~~^

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

Compiler output

Implementation: mj32
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
gep256.c: gep256.c:83:28: warning: sizeof on array function parameter will return size of 'fe *' (aka 'crypto_uint32 (*)[8]') instead of 'gep256' (aka 'fe [3]') [-Wsizeof-array-argument]
gep256.c: for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: ^
gep256.c: gep256.c:78:29: note: declared here
gep256.c: static int isneutral(gep256 p) {
gep256.c: ^
gep256.c: gep256.c:92:28: warning: sizeof on array function parameter will return size of 'fe *' (aka 'crypto_uint32 (*)[8]') instead of 'gep256_precomp' (aka 'fe [2]') [-Wsizeof-array-argument]
gep256.c: for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: ^
gep256.c: gep256.c:87:45: note: declared here
gep256.c: static int isneutral_precomp(gep256_precomp p) {
gep256.c: ^
gep256.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments mj32
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments mj32
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments mj32
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments mj32
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mj32