Implementation notes: aarch64, pi3aplus, crypto_kem/ntruhps2048509

Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: ntruhps2048509
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
179726027228 0 047334 832 1552T:compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011920240107
185862827228 0 046646 832 1552compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011920240107
650522815408 0 035558 832 1552T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010520231212
656449415408 0 034870 832 1552refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010520231212
799991411552 0 031183 904 1568T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
806209111552 0 030495 904 1568compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
861669711456 0 031079 904 1568T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
86595636212 0 024549 896 1552T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
867126911456 0 030391 904 1568refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
87202996212 0 023861 896 1552refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
91076934460 0 022829 896 1552T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
91672904460 0 022141 896 1552compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
97087376448 0 024621 896 1552T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
97646316448 0 023933 896 1552refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
107567744592 0 022869 896 1552T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
108202684592 0 022181 896 1552compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
112823755836 0 023109 880 1536T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
113419215836 0 022421 880 1536refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010520231212
118171374012 0 021349 880 1536T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107
118781274012 0 020661 880 1536compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011920240107

Checksum failure

Implementation: T:neon
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
00cd3fe1b21cd7ad209de97d76eba108e51415ad7ed1fd717df6c7bcf4135c06
Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
neon_poly_rq_mul.c: In file included from neon_poly_rq_mul.c:20:
neon_poly_rq_mul.c: rq_mul/neon_poly_rq_mul.c: In function 'karat_neon_evaluate_combine':
neon_poly_rq_mul.c: rq_mul/neon_poly_rq_mul.c:120:25: warning: implicit declaration of function 'vst1q_u16_x2'; did you mean 'vld1q_u16_x2'? [-Wimplicit-function-declaration]
neon_poly_rq_mul.c: #define vstore_x2(c, a) vst1q_u16_x2(c, a);
neon_poly_rq_mul.c: ^~~~~~~~~~~~
neon_poly_rq_mul.c: rq_mul/neon_poly_rq_mul.c:178:9: note: in expansion of macro 'vstore_x2'
neon_poly_rq_mul.c: vstore_x2(&w0_mem[addr], r0);
neon_poly_rq_mul.c: ^~~~~~~~~
try.c: /usr/bin/ld: libcrypto_kem_ntruhps2048509.a(neon_poly_rq_mul.o): in function `karat_neon_evaluate_combine.part.0':
try.c: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: libcrypto_kem_ntruhps2048509.a(neon_poly_rq_mul.o):neon_poly_rq_mul.c:(.text+0x...): more undefined references to `vst1q_u16_x2' follow
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
neon_poly_rq_mul.c: In file included from neon_poly_rq_mul.c:20:
neon_poly_rq_mul.c: rq_mul/neon_poly_rq_mul.c: In function 'karat_neon_evaluate_combine':
neon_poly_rq_mul.c: rq_mul/neon_poly_rq_mul.c:120:25: warning: implicit declaration of function 'vst1q_u16_x2'; did you mean 'vld1q_u16_x2'? [-Wimplicit-function-declaration]
neon_poly_rq_mul.c: #define vstore_x2(c, a) vst1q_u16_x2(c, a);
neon_poly_rq_mul.c: ^~~~~~~~~~~~
neon_poly_rq_mul.c: rq_mul/neon_poly_rq_mul.c:178:9: note: in expansion of macro 'vstore_x2'
neon_poly_rq_mul.c: vstore_x2(&w0_mem[addr], r0);
neon_poly_rq_mul.c: ^~~~~~~~~
try.c: /usr/bin/ld: libcrypto_kem_ntruhps2048509.a(neon_poly_rq_mul.o): in function `karat_neon_evaluate_combine':
try.c: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: neon_poly_rq_mul.c:(.text+0x...): undefined reference to `vst1q_u16_x2'
try.c: /usr/bin/ld: libcrypto_kem_ntruhps2048509.a(neon_poly_rq_mul.o):neon_poly_rq_mul.c:(.text+0x...): more undefined references to `vst1q_u16_x2' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:neon

Namespace violations

Implementation: compact
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
kem.o sample_fixed_type T

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE compact T:compact
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE compact T:compact
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE compact T:compact
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE compact T:compact
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE compact T:compact