Implementation notes: amd64, speed2supercop, crypto_hash/blake2s

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_hash
Primitive: blake2s
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
82086256 0 020254 824 744T:avxiccclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82086256 0 018878 824 728T:avxiccclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82086256 0 016453 784 800T:avxiccgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82086256 0 015208 760 768T:avxiccgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82126256 0 020062 824 744T:avxiccclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82126256 0 016198 824 728T:avxiccclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82126256 0 017071 816 792T:avxiccclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82126256 0 018453 784 800T:avxiccgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
82126256 0 016220 776 800T:avxiccgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86481719 0 014310 792 728T:moon/avx/64clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601713 0 015526 792 744T:moon/avx/64clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601713 0 015702 792 744T:moon/avx/64clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601713 0 011646 792 728T:moon/avx/64clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601718 0 012471 784 792T:moon/avx/64clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601709 0 011869 752 800T:moon/avx/64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601709 0 013869 752 800T:moon/avx/64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86601911 0 014502 792 728T:moon/ssse3/64clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86721699 0 010608 728 768T:moon/avx/64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86721905 0 015718 792 744T:moon/ssse3/64clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86721905 0 011838 792 728T:moon/ssse3/64clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86721901 0 012061 752 800T:moon/ssse3/64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86761725 0 011676 744 800T:moon/avx/64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86761910 0 012663 784 792T:moon/ssse3/64clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86761901 0 014061 752 800T:moon/ssse3/64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
86881905 0 015894 792 744T:moon/ssse3/64clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
88521917 0 011868 744 800T:moon/ssse3/64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
88521891 0 010800 728 768T:moon/ssse3/64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
100961879 0 014470 792 728T:moon/sse2/64clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101081873 0 015686 792 744T:moon/sse2/64clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101081873 0 015862 792 744T:moon/sse2/64clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101081873 0 011806 792 728T:moon/sse2/64clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101081878 0 012631 784 792T:moon/sse2/64clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101081869 0 014029 752 800T:moon/sse2/64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101121869 0 012029 752 800T:moon/sse2/64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
102881859 0 010768 728 768T:moon/sse2/64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
103001885 0 011836 744 800T:moon/sse2/64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
103609824 0 022398 792 728T:regsclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
104449065 0 017960 728 768T:regsgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1085611891 0 021782 792 728T:regsclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1088811686 0 021837 752 800T:regsgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1090011686 0 023837 752 800T:regsgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
113608615 0 019383 784 792T:regsclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
113648695 0 022638 792 744T:regsclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
113768695 0 022446 792 744T:regsclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1144411495 0 021404 744 800T:regsgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Test failure


error 111

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:moon/xop/64clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:moon/xop/64clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:moon/xop/64clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:moon/xop/64clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:moon/xop/64clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:moon/xop/64gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:moon/xop/64gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:moon/xop/64gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:moon/xop/64gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


try.c: /usr/bin/ld: libcrypto_hash_blake2s.a(blake2s.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_hash_blake2s.a(blake2s.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_hash_blake2s.a(blake2s.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:avxiccclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxiccclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxiccclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxiccclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxiccclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxiccgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avxiccgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avxiccgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avxiccgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


blake2s-ref.c: In file included from blake2s-ref.c:19:
blake2s-ref.c: ./blake2.h:101:23: error: size of array element of type 'blake2s_state' (aka 'struct __blake2s_state') (185 bytes) isn't a multiple of its alignment (64 bytes)
blake2s-ref.c:     blake2s_state S[8][1];
blake2s-ref.c:                       ^
blake2s-ref.c: ./blake2.h:102:20: error: size of array element of type 'blake2s_state' (aka 'struct __blake2s_state') (185 bytes) isn't a multiple of its alignment (64 bytes)
blake2s-ref.c:     blake2s_state R[1];
blake2s-ref.c:                    ^
blake2s-ref.c: ./blake2.h:109:23: error: size of array element of type 'blake2b_state' (aka 'struct __blake2b_state') (361 bytes) isn't a multiple of its alignment (64 bytes)
blake2s-ref.c:     blake2b_state S[4][1];
blake2s-ref.c:                       ^
blake2s-ref.c: ./blake2.h:110:20: error: size of array element of type 'blake2b_state' (aka 'struct __blake2b_state') (361 bytes) isn't a multiple of its alignment (64 bytes)
blake2s-ref.c:     blake2b_state R[1];
blake2s-ref.c:                    ^
blake2s-ref.c: blake2s-ref.c:331:18: error: size of array element of type 'blake2s_state' (aka 'struct __blake2s_state') (185 bytes) isn't a multiple of its alignment (64 bytes)
blake2s-ref.c:   blake2s_state S[1];
blake2s-ref.c:                  ^
blake2s-ref.c: 5 errors generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


blake2s-ref.c: In file included from blake2s-ref.c:19:
blake2s-ref.c: blake2.h:101:5: error: size of array element is not a multiple of its alignment
blake2s-ref.c:   101 |     blake2s_state S[8][1];
blake2s-ref.c:       |     ^~~~~~~~~~~~~
blake2s-ref.c: blake2.h:102:5: error: size of array element is not a multiple of its alignment
blake2s-ref.c:   102 |     blake2s_state R[1];
blake2s-ref.c:       |     ^~~~~~~~~~~~~
blake2s-ref.c: blake2.h:109:5: error: size of array element is not a multiple of its alignment
blake2s-ref.c:   109 |     blake2b_state S[4][1];
blake2s-ref.c:       |     ^~~~~~~~~~~~~
blake2s-ref.c: blake2.h:110:5: error: size of array element is not a multiple of its alignment
blake2s-ref.c:   110 |     blake2b_state R[1];
blake2s-ref.c:       |     ^~~~~~~~~~~~~
blake2s-ref.c: blake2s-ref.c: In function 'blake2s':
blake2s-ref.c: blake2s-ref.c:331:3: error: size of array element is not a multiple of its alignment
blake2s-ref.c:   331 |   blake2s_state S[1];
blake2s-ref.c:       |   ^~~~~~~~~~~~~

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

Compiler output


blake2s.c: blake2s.c:796:11: warning: implicit conversion from 'unsigned long' to 'uint32_t' (aka 'unsigned int') changes value from 18446744073180816980 to 3766232660 [-Wconstant-conversion]
blake2s.c:     v14 = ~0x1F83D9ABUL;
blake2s.c:         ~ ^~~~~~~~~~~~~
blake2s.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:regsclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:regsclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:regsclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:regsclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:regsclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


blake2s.c: blake2s.c: In function 'crypto_hash_blake2s_regs_timingleaks':
blake2s.c: blake2s.c:796:11: warning: conversion from 'long unsigned int' to 'uint32_t' {aka 'unsigned int'} changes value from '18446744073180816980' to '3766232660' [-Woverflow]
blake2s.c:   796 |     v14 = ~0x1F83D9ABUL;
blake2s.c:       |           ^

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

Compiler output


blake2s.c: In file included from blake2s.c:19:
blake2s.c: ./blake2.h:101:23: error: size of array element of type 'blake2s_state' (aka 'struct __blake2s_state') (185 bytes) isn't a multiple of its alignment (64 bytes)
blake2s.c:     blake2s_state S[8][1];
blake2s.c:                       ^
blake2s.c: ./blake2.h:102:20: error: size of array element of type 'blake2s_state' (aka 'struct __blake2s_state') (185 bytes) isn't a multiple of its alignment (64 bytes)
blake2s.c:     blake2s_state R[1];
blake2s.c:                    ^
blake2s.c: ./blake2.h:109:23: error: size of array element of type 'blake2b_state' (aka 'struct __blake2b_state') (361 bytes) isn't a multiple of its alignment (64 bytes)
blake2s.c:     blake2b_state S[4][1];
blake2s.c:                       ^
blake2s.c: ./blake2.h:110:20: error: size of array element of type 'blake2b_state' (aka 'struct __blake2b_state') (361 bytes) isn't a multiple of its alignment (64 bytes)
blake2s.c:     blake2b_state R[1];
blake2s.c:                    ^
blake2s.c: 4 errors generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:xmmclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:xmmclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:xmmclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:xmmclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:xmmclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


blake2s.c: In file included from blake2s.c:19:
blake2s.c: blake2.h:101:5: error: size of array element is not a multiple of its alignment
blake2s.c:   101 |     blake2s_state S[8][1];
blake2s.c:       |     ^~~~~~~~~~~~~
blake2s.c: blake2.h:102:5: error: size of array element is not a multiple of its alignment
blake2s.c:   102 |     blake2s_state R[1];
blake2s.c:       |     ^~~~~~~~~~~~~
blake2s.c: blake2.h:109:5: error: size of array element is not a multiple of its alignment
blake2s.c:   109 |     blake2b_state S[4][1];
blake2s.c:       |     ^~~~~~~~~~~~~
blake2s.c: blake2.h:110:5: error: size of array element is not a multiple of its alignment
blake2s.c:   110 |     blake2b_state R[1];
blake2s.c:       |     ^~~~~~~~~~~~~

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