Implementation notes: amd64, hydra8, crypto_encrypt/lotus192

Computer: hydra8
Microarchitecture: amd64; Ivy Bridge+AES (306a9)
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_encrypt
Primitive: lotus192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
112002242239 0 862178 940 1792T:optgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
147334630633 0 850506 940 1792T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
223201345787 0 865510 980 1728T:optclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
234571247220 0 867502 980 1728T:optclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
238079451027 0 872710 980 1728T:optclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
253452325105 0 844782 980 1728T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
265642129993 0 851614 980 1728T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
266627729554 0 849798 980 1728T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
514269812429 0 830112 972 1728T:optclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
756834616526 0 834598 980 1728T:optclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
771637814014 0 832786 940 1792T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
855957310329 0 829018 940 1792T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
864008512115 0 830530 940 1792T:optgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
87490769739 0 827734 980 1728T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
89795788809 0 826424 972 1728T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
90170129507 0 827858 940 1792T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
116453928834 0 826074 932 1792T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
1174432511365 0 828722 932 1792T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625

Compiler output


lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:173:14: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       b[0] = _mm256_mullo_epi16(b[0], a);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:174:14: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       b[1] = _mm256_mullo_epi16(b[1], a);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:175:14: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       b[2] = _mm256_mullo_epi16(b[2], a);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:176:14: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       b[3] = _mm256_mullo_epi16(b[3], a);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:177:14: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       b[4] = _mm256_mullo_epi16(b[4], a);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:178:14: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       b[5] = _mm256_mullo_epi16(b[5], a);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:179:14: error: always_inline function '_mm256_sub_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       c[0] = _mm256_sub_epi16(c[0], b[0]);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:180:14: error: always_inline function '_mm256_sub_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c:       c[1] = _mm256_sub_epi16(c[1], b[1]);
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:181:14: error: always_inline function '_mm256_sub_epi16' requires target feature 'avx2', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx2'
lwe-arithmetics_avx2.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:avx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:avx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:158:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[0] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:158:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:159:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[1] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:159:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:160:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[2] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:160:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:161:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[3] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:161:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:162:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[4] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:162:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:163:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[5] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:163:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:166:11: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c: ...

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

Compiler output


lwe-arithmetics_avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
lwe-arithmetics_avx2.c:                  from lwe-arithmetics_avx2.c:10:
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c: In function 'submat_negmul':
lwe-arithmetics_avx2.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:808:1: error: inlining failed in call to 'always_inline' '_mm256_sub_epi16': target specific option mismatch
lwe-arithmetics_avx2.c:   808 | _mm256_sub_epi16 (__m256i __A, __m256i __B)
lwe-arithmetics_avx2.c:       | ^~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:184:14: note: called from here
lwe-arithmetics_avx2.c:   184 |       c[5] = _mm256_sub_epi16(c[5], b[5]);
lwe-arithmetics_avx2.c:       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
lwe-arithmetics_avx2.c:                  from lwe-arithmetics_avx2.c:10:
lwe-arithmetics_avx2.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:808:1: error: inlining failed in call to 'always_inline' '_mm256_sub_epi16': target specific option mismatch
lwe-arithmetics_avx2.c:   808 | _mm256_sub_epi16 (__m256i __A, __m256i __B)
lwe-arithmetics_avx2.c:       | ^~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:183:14: note: called from here
lwe-arithmetics_avx2.c:   183 |       c[4] = _mm256_sub_epi16(c[4], b[4]);
lwe-arithmetics_avx2.c:       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
lwe-arithmetics_avx2.c:                  from lwe-arithmetics_avx2.c:10:
lwe-arithmetics_avx2.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:808:1: error: inlining failed in call to 'always_inline' '_mm256_sub_epi16': target specific option mismatch
lwe-arithmetics_avx2.c:   808 | _mm256_sub_epi16 (__m256i __A, __m256i __B)
lwe-arithmetics_avx2.c:       | ^~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:182:14: note: called from here
lwe-arithmetics_avx2.c:   182 |       c[3] = _mm256_sub_epi16(c[3], b[3]);
lwe-arithmetics_avx2.c:       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.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)