Implementation notes: amd64, hertz, crypto_stream/simon128192ctr

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_stream
Primitive: simon128192ctr

Checksum failure


4f357420b1a7037053b3afccc696bd4ddb0eb05091e25716177467054c34c371

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:sse4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sse4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sse4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sse4gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sse4gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sse4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


stream.c: stream.c:139:28: error: call to undeclared function 'R2x16'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
stream.c:   139 |         if (numbytes==256) Enc(X,Y,rk,16);
stream.c:       |                            ^
stream.c: ./Simon128192AVX2.h:47:24: note: expanded from macro 'Enc'
stream.c:    47 | #define Enc(X,Y,rk,n) (R2x##n(X,Y,rk,0,1),   R2x##n(X,Y,rk,2,3),   R2x##n(X,Y,rk,4,5),   R2x##n(X,Y,rk,6,7),   R2x##n(X,Y,rk,8,9), \
stream.c:       |                        ^
stream.c: <scratch space>:361:1: note: expanded from here
stream.c:   361 | R2x16
stream.c:       | ^
stream.c: ./Simon128192AVX2.h:34:28: note: expanded from macro 'R2x16'
stream.c:    34 | #define R2x16(X,Y,rk,r,s) (R2x16(X,Y,rk,r), R1x16(Y,X,rk,s))
stream.c:       |                            ^
stream.c: stream.c:291:28: error: call to undeclared function 'R2x16'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
stream.c:   291 |         if (numbytes==256) Enc(X,Y,rk,16);
stream.c:       |                            ^
stream.c: ./Simon128192AVX2.h:47:24: note: expanded from macro 'Enc'
stream.c:    47 | #define Enc(X,Y,rk,n) (R2x##n(X,Y,rk,0,1),   R2x##n(X,Y,rk,2,3),   R2x##n(X,Y,rk,4,5),   R2x##n(X,Y,rk,6,7),   R2x##n(X,Y,rk,8,9), \
stream.c:       |                        ^
stream.c: <scratch space>:7:1: note: expanded from here
stream.c:     7 | R2x16
stream.c:       | ^
stream.c: ./Simon128192AVX2.h:34:28: note: expanded from macro 'R2x16'
stream.c:    34 | #define R2x16(X,Y,rk,r,s) (R2x16(X,Y,rk,r), R1x16(Y,X,rk,s))
stream.c:       |                            ^
stream.c: 2 errors generated.

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:avx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


stream.c: In file included from stream.c:20:
stream.c: stream.c: In function 'Encrypt':
stream.c: Simon128192AVX2.h:34:28: warning: implicit declaration of function 'R2x16' [-Wimplicit-function-declaration]
stream.c:    34 | #define R2x16(X,Y,rk,r,s) (R2x16(X,Y,rk,r), R1x16(Y,X,rk,s))
stream.c:       |                            ^~~~~
stream.c: Simon128192AVX2.h:47:24: note: in expansion of macro 'R2x16'
stream.c:    47 | #define Enc(X,Y,rk,n) (R2x##n(X,Y,rk,0,1),   R2x##n(X,Y,rk,2,3),   R2x##n(X,Y,rk,4,5),   R2x##n(X,Y,rk,6,7),   R2x##n(X,Y,rk,8,9), \
stream.c:       |                        ^~~
stream.c: stream.c:139:28: note: in expansion of macro 'Enc'
stream.c:   139 |         if (numbytes==256) Enc(X,Y,rk,16);
stream.c:       |                            ^~~
try.c: /usr/bin/ld: libcrypto_stream_simon128192ctr.a(stream.o): in function `Encrypt':
try.c: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: libcrypto_stream_simon128192ctr.a(stream.o):.../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139: more undefined references to `R2x16' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:avx2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


stream.c: In file included from stream.c:20:
stream.c: stream.c: In function 'Encrypt':
stream.c: Simon128192AVX2.h:34:28: warning: implicit declaration of function 'R2x16' [-Wimplicit-function-declaration]
stream.c:    34 | #define R2x16(X,Y,rk,r,s) (R2x16(X,Y,rk,r), R1x16(Y,X,rk,s))
stream.c:       |                            ^~~~~
stream.c: Simon128192AVX2.h:47:24: note: in expansion of macro 'R2x16'
stream.c:    47 | #define Enc(X,Y,rk,n) (R2x##n(X,Y,rk,0,1),   R2x##n(X,Y,rk,2,3),   R2x##n(X,Y,rk,4,5),   R2x##n(X,Y,rk,6,7),   R2x##n(X,Y,rk,8,9), \
stream.c:       |                        ^~~
stream.c: stream.c:139:28: note: in expansion of macro 'Enc'
stream.c:   139 |         if (numbytes==256) Enc(X,Y,rk,16);
stream.c:       |                            ^~~
try.c: /usr/bin/ld: libcrypto_stream_simon128192ctr.a(stream.o): in function `Encrypt':
try.c: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: libcrypto_stream_simon128192ctr.a(stream.o):.../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139: more undefined references to `R2x16' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:avx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


stream.c: In file included from stream.c:20:
stream.c: stream.c: In function 'Encrypt':
stream.c: Simon128192AVX2.h:34:28: warning: implicit declaration of function 'R2x16' [-Wimplicit-function-declaration]
stream.c:    34 | #define R2x16(X,Y,rk,r,s) (R2x16(X,Y,rk,r), R1x16(Y,X,rk,s))
stream.c:       |                            ^~~~~
stream.c: Simon128192AVX2.h:47:24: note: in expansion of macro 'R2x16'
stream.c:    47 | #define Enc(X,Y,rk,n) (R2x##n(X,Y,rk,0,1),   R2x##n(X,Y,rk,2,3),   R2x##n(X,Y,rk,4,5),   R2x##n(X,Y,rk,6,7),   R2x##n(X,Y,rk,8,9), \
stream.c:       |                        ^~~
stream.c: stream.c:139:28: note: in expansion of macro 'Enc'
stream.c:   139 |         if (numbytes==256) Enc(X,Y,rk,16);
stream.c:       |                            ^~~
try.c: /usr/bin/ld: libcrypto_stream_simon128192ctr.a(stream.o): in function `Encrypt':
try.c: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: .../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139:(.text+0x...): undefined reference to `R2x16'
try.c: /usr/bin/ld: libcrypto_stream_simon128192ctr.a(stream.o):.../supercop-data/hertz/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_stream/simon128192ctr/avx2/work/stream.c:139: more undefined references to `R2x16' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:avx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


stream.c: stream.c:331:58: warning: argument 'T' of type '__m128i[8]' with mismatched bound [-Warray-parameter]
stream.c:   331 | inline __attribute__((always_inline)) int Transpose(u128 T[8])
stream.c:       |                                                          ^
stream.c: stream.c:29:58: note: previously declared as '__m128i[]' here
stream.c:    29 | inline __attribute__((always_inline)) int Transpose(u128 M[]);
stream.c:       |                                                          ^
stream.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:sse4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sse4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sse4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


stream.c: stream.c:331:58: warning: argument 1 of type '__m128i[8]' with mismatched bound [-Warray-parameter=]
stream.c:   331 | inline __attribute__((always_inline)) int Transpose(u128 T[8])
stream.c: stream.c:29:58: note: previously declared as '__m128i[]'
stream.c:    29 | inline __attribute__((always_inline)) int Transpose(u128 M[]);

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