Implementation notes: amd64, hydra7, crypto_stream/speck128256ctr

Computer: hydra7
Microarchitecture: amd64; Sandy Bridge+AES (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_stream
Primitive: speck128256ctr
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
450929631 0 043348 796 1024T:sse4gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
681615682 0 029781 804 1024T:sse4gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
683616697 0 032117 804 1024T:sse4gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
688415380 0 027896 780 992T:sse4gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


stream.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
stream.c:                  from Intrinsics_AVX2_128block.h:5,
stream.c:                  from Speck128256AVX2.h:17,
stream.c:                  from stream.c:20:
stream.c: stream.c: In function 'Encrypt':
stream.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:126:1: error: inlining failed in call to 'always_inline' '_mm256_add_epi64': target specific option mismatch
stream.c:   126 | _mm256_add_epi64 (__m256i __A, __m256i __B)
stream.c:       | ^~~~~~~~~~~~~~~~
stream.c: In file included from Speck128256AVX2.h:17,
stream.c:                  from stream.c:20:
stream.c: Intrinsics_AVX2_128block.h:17:13: note: called from here
stream.c:    17 | #define ADD _mm256_add_epi64
stream.c:       |             ^
stream.c: Intrinsics_AVX2_128block.h:26:38: note: in expansion of macro 'ADD'
stream.c:    26 | #define SET4(X,c) (X=SET(c,c,c,c), X=ADD(X,_q))
stream.c:       |                                      ^~~
stream.c: stream.c:132:24: note: in expansion of macro 'SET4'
stream.c:   132 |   SET1(X[0],nonce[1]); SET4(Y[0],nonce[0]);
stream.c:       |                        ^~~~
stream.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
stream.c:                  from Intrinsics_AVX2_128block.h:5,
stream.c:                  from Speck128256AVX2.h:17,
stream.c:                  from stream.c:20:
stream.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:126:1: error: inlining failed in call to 'always_inline' '_mm256_add_epi64': target specific option mismatch
stream.c:   126 | _mm256_add_epi64 (__m256i __A, __m256i __B)
stream.c: ...

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

Compiler output


stream.c: stream.c: In function 'Encrypt_Xor':
stream.c: stream.c:267:10: warning: unused variable 'j' [-Wunused-variable]
stream.c:   267 |   u64  i,j,x[2],y[2];
stream.c:       |          ^
stream.c: stream.c:267:8: warning: unused variable 'i' [-Wunused-variable]
stream.c:   267 |   u64  i,j,x[2],y[2];
stream.c:       |        ^
stream.c: In file included from Speck128256AVX512.h:17,
stream.c:                  from stream.c:21:
stream.c: stream.c: In function 'Encrypt':
stream.c: Intrinsics_AVX512_128block.h:25:21: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi]
stream.c:    25 | #define SET1(X,c) (X=SET(c,c,c,c,c,c,c,c))
stream.c:       |                   ~~^~~~~~~~~~~~~~~~~~~~~~
stream.c: stream.c:139:5: note: in expansion of macro 'SET1'
stream.c:   139 |     SET1(X[0],nonce[1]); SET8(Y[0],nonce[0]);
stream.c:       |     ^~~~
stream.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:49,
stream.c:                  from Intrinsics_AVX512_128block.h:5,
stream.c:                  from Speck128256AVX512.h:17,
stream.c:                  from stream.c:21:
stream.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h:6481:1: error: inlining failed in call to 'always_inline' '_mm512_storeu_si512': target specific option mismatch
stream.c:  6481 | _mm512_storeu_si512 (void *__P, __m512i __A)
stream.c:       | ^~~~~~~~~~~~~~~~~~~
stream.c: In file included from Speck128256AVX512.h:17,
stream.c:                  from stream.c:21:
stream.c: ...

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