Implementation notes: armeabi, novena, crypto_core/salsa208

Computer: novena
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20220506
Operation: crypto_core
Primitive: salsa208
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1600380 0 012505 420 720armneon2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1600380 0 021001 420 728armneon2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1600380 0 08787 416 712armneon2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
1601384 0 021001 420 728armneonclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1601380 0 012937 420 712armneon2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1601380 0 011311 416 712armneon2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1601380 0 011167 416 712armneon2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1601380 0 010059 416 712armneon2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
1601380 0 08574 412 712armneon2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
1601380 0 08131 408 712armneon2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
16011228 0 013773 420 712refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
16011228 0 013341 420 720refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
16011228 0 012003 416 712refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
16011248 0 021861 420 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
1601948 0 09331 416 712refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
1999948 0 010603 416 712refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
2000850 0 09042 412 712refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
2000802 0 08531 408 712refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
24001412 0 012307 416 712refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506

Compiler output

Implementation: armneon
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: In file included from core.c:9:
core.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
core.c: #error "NEON support not enabled"
core.c: ^
core.c: core.c:21:9: error: unknown type name 'uint32x4_t'
core.c: const uint32x4_t abab = {-1,0,-1,0};
core.c: ^
core.c: core.c:23:3: error: use of undeclared identifier 'uint32x4_t'
core.c: uint32x4_t k0k1k2k3 = (uint32x4_t) vld1q_u8((uint8_t *) k);
core.c: ^
core.c: core.c:24:3: error: use of undeclared identifier 'uint32x4_t'
core.c: uint32x4_t k4k5k6k7 = (uint32x4_t) vld1q_u8((uint8_t *) (k + 16));
core.c: ^
core.c: core.c:25:3: error: use of undeclared identifier 'uint32x4_t'
core.c: uint32x4_t c0c1c2c3 = (uint32x4_t) vld1q_u8((uint8_t *) c);
core.c: ^
core.c: core.c:26:3: error: use of undeclared identifier 'uint32x4_t'
core.c: uint32x4_t n0n1n2n3 = (uint32x4_t) vld1q_u8((uint8_t *) in);
core.c: ^
core.c: core.c:28:3: error: use of undeclared identifier 'uint32x4_t'
core.c: uint32x4_t n1n2n3n0 = vextq_u32(n0n1n2n3,n0n1n2n3,1);
core.c: ^
core.c: core.c:29:3: error: use of undeclared identifier 'uint32x2_t'
core.c: uint32x2_t n1n2 = vget_low_u32(n1n2n3n0);
core.c: ^
core.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE armneon
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE armneon
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE armneon
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE armneon

Compiler output

Implementation: armneon
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: In file included from core.c:9:
core.c: core.c: In function ‘crypto_core_salsa208_armneon_constbranchindex’:
core.c: /usr/lib/gcc/arm-linux-gnueabihf/10/include/arm_neon.h:8870:1: error: inlining failed in call to ‘always_inline’ ‘vextq_u32’: target specific option mismatch
core.c: 8870 | vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
core.c: | ^~~~~~~~~
core.c: core.c:51:23: note: called from here
core.c: 51 | uint32x4_t start3 = vextq_u32(k2k3n3k7,k2k3n3k7,1);
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: In file included from core.c:9:
core.c: /usr/lib/gcc/arm-linux-gnueabihf/10/include/arm_neon.h:8870:1: error: inlining failed in call to ‘always_inline’ ‘vextq_u32’: target specific option mismatch
core.c: 8870 | vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
core.c: | ^~~~~~~~~
core.c: core.c:50:23: note: called from here
core.c: 50 | uint32x4_t start2 = vextq_u32(n1n2k6k1,n1n2k6k1,1);
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: In file included from core.c:9:
core.c: /usr/lib/gcc/arm-linux-gnueabihf/10/include/arm_neon.h:8870:1: error: inlining failed in call to ‘always_inline’ ‘vextq_u32’: target specific option mismatch
core.c: 8870 | vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
core.c: | ^~~~~~~~~
core.c: core.c:49:23: note: called from here
core.c: 49 | uint32x4_t start1 = vextq_u32(k4k5k0n0,k4k5k0n0,1);
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: In file included from core.c:9:
core.c: /usr/lib/gcc/arm-linux-gnueabihf/10/include/arm_neon.h:7196:1: error: inlining failed in call to ‘always_inline’ ‘vcombine_u32’: target specific option mismatch
core.c: 7196 | vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
core.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE armneon
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE armneon
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE armneon
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE armneon