Implementation notes: amd64, titan0, crypto_sign/luov863256pc

Computer: titan0
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_sign
Primitive: luov863256pc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
56539665598 0 097317 900 1760T:avx2clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
56629564243 0 095341 900 1760T:avx2clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
57843633304 32768 064864 33612 1792T:avx2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
65952753543 0 081317 900 1728T:avx2clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
67057648946 0 078501 884 1792T:avx2clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
70277320512 32768 050080 33612 1792T:avx2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
74516519998 32768 049216 33612 1792T:avx2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716
85069015309 32768 043464 33604 1760T:avx2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240716

Compiler output


LUOV.c: LUOV.c:1159:10: warning: unused function 'read_uint64_t' [-Wunused-function]
LUOV.c: uint64_t read_uint64_t(const unsigned char *data){
LUOV.c:          ^
LUOV.c: 1 warning generated.
keccakrng.c: keccakrng.c:71:24: warning: unused function 'rotl' [-Wunused-function]
keccakrng.c: static inline uint64_t rotl(const uint64_t x, int k) {
keccakrng.c:                        ^
keccakrng.c: 1 warning generated.

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


LUOV.c: LUOV.c:38:19: error: '__builtin_ia32_permdi256' needs target feature avx2
LUOV.c:                         __m256i rrrr = _mm256_permute4x64_epi64(_mm256_loadu_si256((__m256i *)&Q1[col++]),0);
LUOV.c:                                        ^
LUOV.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/avx2intrin.h:818:13: note: expanded from macro '_mm256_permute4x64_epi64'
LUOV.c:   ((__m256i)__builtin_ia32_permdi256((__v4di)(__m256i)(V), (int)(M)))
LUOV.c:             ^
LUOV.c: LUOV.c:38:44: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'calculateQ2' that is compiled without support for 'avx'
LUOV.c:                         __m256i rrrr = _mm256_permute4x64_epi64(_mm256_loadu_si256((__m256i *)&Q1[col++]),0);
LUOV.c:                                                                 ^
LUOV.c: LUOV.c:38:44: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
LUOV.c: LUOV.c:43:69: error: always_inline function '_mm256_setzero_pd' requires target feature 'avx', but would be inlined into function 'calculateQ2' that is compiled without support for 'avx'
LUOV.c:                                 *((__m256i *)&TempMat[i][k*8+4]) ^=  (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c:                                                                                                 ^
LUOV.c: LUOV.c:43:69: error: AVX vector return of type '__m256d' (vector of 4 'double' values) without 'avx' enabled changes the ABI
LUOV.c: LUOV.c:43:52: error: always_inline function '_mm256_blendv_pd' requires target feature 'avx', but would be inlined into function 'calculateQ2' that is compiled without support for 'avx'
LUOV.c:                                 *((__m256i *)&TempMat[i][k*8+4]) ^=  (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c:                                                                                ^
LUOV.c: LUOV.c:43:52: error: AVX vector argument of type '__m256d' (vector of 4 'double' values) without 'avx' enabled changes the ABI
LUOV.c: LUOV.c:44:10: error: always_inline function '_mm256_slli_epi64' requires target feature 'avx2', but would be inlined into function 'calculateQ2' that is compiled without support for 'avx2'
LUOV.c:                                 TJ = _mm256_slli_epi64(TJ,4);
LUOV.c:                                      ^
LUOV.c: LUOV.c:44:10: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
LUOV.c: LUOV.c:46:66: error: always_inline function '_mm256_setzero_pd' requires target feature 'avx', but would be inlined into function 'calculateQ2' that is compiled without support for 'avx'
LUOV.c:                                 *((__m256i *)&TempMat[i][k*8]) ^= (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c:                                                                                              ^
LUOV.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)

Namespace violations


LUOV.o BuildAugmentedMatrixFromP1L T
LUOV.o BuildAugmentedMatrixFromQ1 T
LUOV.o EvaluateVinegarPart T
LUOV.o TransformQ1 T
LUOV.o _generateKeyPair T
LUOV.o _sign T
LUOV.o calculateQ2 T
LUOV.o computeTarget T
LUOV.o deserializeQ2 T
LUOV.o evaluatePublicMap T
LUOV.o extractMessage T
LUOV.o generateBigKeyPair T
LUOV.o generateKeyPair T
LUOV.o initializeVinegarSponge T
LUOV.o multiplyByT T
LUOV.o precompute_sign T
LUOV.o precompute_verify T
LUOV.o serializeQ2 T
LUOV.o solvePrivateUOVSystem T
LUOV.o verify T
LUOV.o verify_fast T
LinearAlgebra.o destroy_matrix T
LinearAlgebra.o getUniqueSolution T
LinearAlgebra.o newMatrix T
LinearAlgebra.o printMatrix T
LinearAlgebra.o rowEchelonAugmented T
LinearAlgebra.o rowOp T
LinearAlgebra.o scalarMul2 T
LinearAlgebra.o scaleRow T
LinearAlgebra.o swapRows T
intermediateValues.o printAugmentedMatrix T
intermediateValues.o printEvaluation T
intermediateValues.o printPrivateSolution T
intermediateValues.o printVinegarValues T
intermediateValues.o reportSolutionFound T
keccakrng.o calculateQ1 T
keccakrng.o initializeAndAbsorb T
keccakrng.o squeezeCols T
keccakrng.o squeezeVector T
keccakrng.o squeezeuint64_t T

Number of similar (implementation,compiler) pairs: 8, 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)
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)