Implementation notes: aarch64, pi4b, crypto_hash/lsh256

Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240808
Operation: crypto_hash
Primitive: lsh256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1669119144 0 021526 840 728refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2195323112 0 022528 816 736refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2215923392 0 021632 816 728refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2240221904 0 019824 800 720refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2311223840 0 021824 816 728refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
421292991 336 01674658 144793 14952cryptoppg++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
421563151 336 01673862 144801 14952cryptoppg++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
421583134 336 01673512 144801 14952cryptoppg++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
423252569 336 01680024 144801 14936cryptoppg++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808

Compiler output


lsh-impl.c: lsh-impl.c:71:22: warning: unused variable 'ALPHA_EVEN' [-Wunused-const-variable]
lsh-impl.c: static const lsh_u32 ALPHA_EVEN = 29;
lsh-impl.c:                      ^
lsh-impl.c: lsh-impl.c:72:22: warning: unused variable 'ALPHA_ODD' [-Wunused-const-variable]
lsh-impl.c: static const lsh_u32 ALPHA_ODD = 5;
lsh-impl.c:                      ^
lsh-impl.c: lsh-impl.c:73:22: warning: unused variable 'BETA_EVEN' [-Wunused-const-variable]
lsh-impl.c: static const lsh_u32 BETA_EVEN = 1;
lsh-impl.c:                      ^
lsh-impl.c: lsh-impl.c:74:22: warning: unused variable 'BETA_ODD' [-Wunused-const-variable]
lsh-impl.c: static const lsh_u32 BETA_ODD = 17;
lsh-impl.c:                      ^
lsh-impl.c: 4 warnings generated.
lsh.c: lsh.c:76:31: error: unknown type name 'lsh_s32x4'; did you mean 'lsh_u32'?
lsh.c: static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:                               ^~~~~~~~~
lsh.c:                               lsh_u32
lsh.c: ./lsh_def.h:41:18: note: 'lsh_u32' declared here
lsh.c: typedef uint32_t lsh_u32;
lsh.c:                  ^
lsh.c: lsh.c:76:57: warning: excess elements in scalar initializer [-Wexcess-initializers]
lsh.c: static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:                                                         ^
lsh.c: lsh.c:76:74: warning: excess elements in scalar initializer [-Wexcess-initializers]
lsh.c: static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:                                                                          ^~
lsh.c: lsh.c:77:31: error: unknown type name 'lsh_s32x4'; did you mean 'lsh_u32'?
lsh.c: static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA_INV[2] ={ {-32, -24, -16, -8}, {-8, -16, -24, -32} };
lsh.c:                               ^~~~~~~~~
lsh.c:                               lsh_u32
lsh.c: ./lsh_def.h:41:18: note: 'lsh_u32' declared here
lsh.c: typedef uint32_t lsh_u32;
lsh.c:                  ^
lsh.c: lsh.c:77:63: warning: excess elements in scalar initializer [-Wexcess-initializers]
lsh.c: static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA_INV[2] ={ {-32, -24, -16, -8}, {-8, -16, -24, -32} };
lsh.c:                                                               ^~~
lsh.c: lsh.c:77:83: warning: excess elements in scalar initializer [-Wexcess-initializers]
lsh.c: static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA_INV[2] ={ {-32, -24, -16, -8}, {-8, -16, -24, -32} };
lsh.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
neonclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


lsh-impl.c: lsh-impl.c:74:22: warning: 'BETA_ODD' defined but not used [-Wunused-const-variable=]
lsh-impl.c:    74 | static const lsh_u32 BETA_ODD = 17;
lsh-impl.c:       |                      ^~~~~~~~
lsh-impl.c: lsh-impl.c:73:22: warning: 'BETA_EVEN' defined but not used [-Wunused-const-variable=]
lsh-impl.c:    73 | static const lsh_u32 BETA_EVEN = 1;
lsh-impl.c:       |                      ^~~~~~~~~
lsh-impl.c: lsh-impl.c:72:22: warning: 'ALPHA_ODD' defined but not used [-Wunused-const-variable=]
lsh-impl.c:    72 | static const lsh_u32 ALPHA_ODD = 5;
lsh-impl.c:       |                      ^~~~~~~~~
lsh-impl.c: lsh-impl.c:71:22: warning: 'ALPHA_EVEN' defined but not used [-Wunused-const-variable=]
lsh-impl.c:    71 | static const lsh_u32 ALPHA_EVEN = 29;
lsh-impl.c:       |                      ^~~~~~~~~~
lsh.c: lsh.c:76:31: error: unknown type name 'lsh_s32x4'
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:       |                               ^~~~~~~~~
lsh.c: lsh.c:76:1: warning: braces around scalar initializer
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:       | ^~~~~~
lsh.c: lsh.c:76:1: note: (near initialization for 'GAMMA[0]')
lsh.c: lsh.c:76:57: warning: excess elements in scalar initializer
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:       |                                                         ^
lsh.c: lsh.c:76:57: note: (near initialization for 'GAMMA[0]')
lsh.c: lsh.c:76:60: warning: excess elements in scalar initializer
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:       |                                                            ^~
lsh.c: lsh.c:76:60: note: (near initialization for 'GAMMA[0]')
lsh.c: lsh.c:76:64: warning: excess elements in scalar initializer
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:       |                                                                ^~
lsh.c: lsh.c:76:64: note: (near initialization for 'GAMMA[0]')
lsh.c: lsh.c:76:1: warning: braces around scalar initializer
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c:       | ^~~~~~
lsh.c: lsh.c:76:1: note: (near initialization for 'GAMMA[1]')
lsh.c: lsh.c:76:74: warning: excess elements in scalar initializer
lsh.c:    76 | static const LSH_ALIGNED_(16) lsh_s32x4 GAMMA[2] ={ {0, 8, 16, 24}, {24, 16, 8, 0} };
lsh.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
neongcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
neongcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
neongcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
neongcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Namespace violations


lsh-impl.o lsh256_digest T
lsh-impl.o lsh256_final T
lsh-impl.o lsh256_init T
lsh-impl.o lsh256_update T
lsh.o lsh256_digest T
lsh.o lsh256_final T
lsh.o lsh256_init T
lsh.o lsh256_update T

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Passed TIMECOP


TIMECOP iterations: 10

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
cryptoppg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
cryptoppg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
cryptoppg++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
cryptoppg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)