Implementation notes: aarch64, pi4b, crypto_hash/lsh512
Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240716
Operation: crypto_hash
Primitive: lsh512
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
13335 | 28452 0 0 | 26635 872 744 | ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
14218 | 24700 0 0 | 26929 896 744 | ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
14218 | 27196 0 0 | 27243 872 752 | ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
14218 | 26740 0 0 | 24755 856 736 | ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
14224 | 28108 0 0 | 26627 872 744 | ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
24892 | 3167 336 0 | 1682760 144857 14968 | cryptopp | g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
24892 | 3168 336 0 | 1683002 144857 14968 | cryptopp | g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
28436 | 3024 336 0 | 1683926 144849 14968 | cryptopp | g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
28436 | 2594 336 0 | 1672776 144857 14952 | cryptopp | g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240628 | 20240625 |
Compiler output
lsh-impl.c: lsh-impl.c:141:21: error: argument to '__builtin_neon_vshlq_n_v' must be a constant integer
lsh-impl.c: return vsriq_n_u64(vshlq_n_u64(value, rot), value, 64 - rot);
lsh-impl.c: ^ ~~~
lsh-impl.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/arm_neon.h:24852:24: note: expanded from macro 'vshlq_n_u64'
lsh-impl.c: __ret = (uint64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 51); \
lsh-impl.c: ^ ~~~~
lsh-impl.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/arm_neon.h:26456:21: note: expanded from macro 'vsriq_n_u64'
lsh-impl.c: uint64x2_t __s0 = __p0; \
lsh-impl.c: ^~~~
lsh-impl.c: lsh-impl.c:141:9: error: argument to '__builtin_neon_vsriq_n_v' must be a constant integer
lsh-impl.c: return vsriq_n_u64(vshlq_n_u64(value, rot), value, 64 - rot);
lsh-impl.c: ^ ~~~~~~~~
lsh-impl.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/arm_neon.h:26459:24: note: expanded from macro 'vsriq_n_u64'
lsh-impl.c: __ret = (uint64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \
lsh-impl.c: ^ ~~~~
lsh-impl.c: 2 errors generated.
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
neon | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
lsh-impl.c: lsh-impl.c:121:22: warning: 'BETA_ODD' defined but not used [-Wunused-const-variable=]
lsh-impl.c: 121 | static const lsh_u32 BETA_ODD = 3;
lsh-impl.c: | ^~~~~~~~
lsh-impl.c: lsh-impl.c:120:22: warning: 'BETA_EVEN' defined but not used [-Wunused-const-variable=]
lsh-impl.c: 120 | static const lsh_u32 BETA_EVEN = 59;
lsh-impl.c: | ^~~~~~~~~
lsh-impl.c: lsh-impl.c:119:22: warning: 'ALPHA_ODD' defined but not used [-Wunused-const-variable=]
lsh-impl.c: 119 | static const lsh_u32 ALPHA_ODD = 7;
lsh-impl.c: | ^~~~~~~~~
lsh-impl.c: lsh-impl.c:118:22: warning: 'ALPHA_EVEN' defined but not used [-Wunused-const-variable=]
lsh-impl.c: 118 | static const lsh_u32 ALPHA_EVEN = 23;
lsh-impl.c: | ^~~~~~~~~~
lsh.c: lsh.c:123:31: error: unknown type name 'lsh_s64x2'
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: | ^~~~~~~~~
lsh.c: lsh.c:123:1: warning: braces around scalar initializer
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: | ^~~~~~
lsh.c: lsh.c:123:1: note: (near initialization for 'GAMMA[0]')
lsh.c: lsh.c:123:57: warning: excess elements in scalar initializer
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: | ^~
lsh.c: lsh.c:123:57: note: (near initialization for 'GAMMA[0]')
lsh.c: lsh.c:123:1: warning: braces around scalar initializer
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: | ^~~~~~
lsh.c: lsh.c:123:1: note: (near initialization for 'GAMMA[1]')
lsh.c: lsh.c:123:67: warning: excess elements in scalar initializer
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: | ^~
lsh.c: lsh.c:123:67: note: (near initialization for 'GAMMA[1]')
lsh.c: lsh.c:123:1: warning: braces around scalar initializer
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: | ^~~~~~
lsh.c: lsh.c:123:1: note: (near initialization for 'GAMMA[2]')
lsh.c: lsh.c:123:76: warning: excess elements in scalar initializer
lsh.c: 123 | static const LSH_ALIGNED_(32) lsh_s64x2 GAMMA[4] = {{0, 16}, {32, 48}, {8, 24}, {40, 56}};
lsh.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
neon | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
neon | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
neon | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
neon | gcc -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:
Implementation | Compiler |
cryptopp | g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
cryptopp | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
cryptopp | g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
cryptopp | g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |