Implementation notes: amd64, saber214, crypto_core/rainbowcalsecret963664

Computer: saber214
Microarchitecture: amd64; Bulldozer (600f20)
Architecture: amd64
CPU ID: AuthenticAMD-00600f20-1789c3f5
SUPERCOP version: 20240107
Operation: crypto_core
Primitive: rainbowcalsecret963664
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
8017598344665 8 056816 800 832ssse3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
8463844235337 8 047424 800 832ssse3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
8779726766929 8 080152 800 832ssse3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
9130276334057 8 046014 840 760ssse3clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9149712747057 8 061366 840 776ssse3clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9482974933471 8 044438 840 760ssse3clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9944795132067 8 042560 832 760ssse3clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
13696886025051 8 036115 776 800ssse3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
34779382544245 0 057382 776 832refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
44736930019170 0 032052 816 760refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
45888748528955 0 041708 816 760amd64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
65867877372055 0 085158 776 832amd64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
77062730725327 0 037326 776 832amd64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
81269387912675 0 023660 816 760amd64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
81633736419223 0 033060 816 776refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
81703291811913 0 022550 808 760amd64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
82602711116711 0 028316 816 760amd64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
83341650130199 0 043732 816 776amd64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
83765961613487 0 025500 816 760refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
86465642224648 0 036534 776 832amd64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
130632290611189 0 022017 752 800amd64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
132689519114950 0 026990 776 832refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
134048529314671 0 026574 776 832refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
136323064411273 0 022284 816 760refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
141997611810614 0 021270 808 760refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
225122156110263 0 021105 752 800refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
parallel_matrix_op.c: In file included from parallel_matrix_op.c:8:
parallel_matrix_op.c: In file included from ./blas.h:25:
parallel_matrix_op.c: ./blas_avx2.h:121:15: error: '__builtin_ia32_permti256' needs target feature avx2
parallel_matrix_op.c: __m256i ml = _mm256_permute2x128_si256( m_tab , m_tab , 0 );
parallel_matrix_op.c: ^
parallel_matrix_op.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/avx2intrin.h:821:13: note: expanded from macro '_mm256_permute2x128_si256'
parallel_matrix_op.c: ((__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (int)(M)))
parallel_matrix_op.c: ^
parallel_matrix_op.c: In file included from parallel_matrix_op.c:8:
parallel_matrix_op.c: In file included from ./blas.h:25:
parallel_matrix_op.c: ./blas_avx2.h:122:15: error: '__builtin_ia32_permti256' needs target feature avx2
parallel_matrix_op.c: __m256i mh = _mm256_permute2x128_si256( m_tab , m_tab , 0x11 );
parallel_matrix_op.c: ^
parallel_matrix_op.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/avx2intrin.h:821:13: note: expanded from macro '_mm256_permute2x128_si256'
parallel_matrix_op.c: ((__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (int)(M)))
parallel_matrix_op.c: ^
parallel_matrix_op.c: In file included from parallel_matrix_op.c:8:
parallel_matrix_op.c: In file included from ./blas.h:25:
parallel_matrix_op.c: In file included from ./blas_avx2.h:15:
parallel_matrix_op.c: ./gf16_avx2.h:29:9: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'linear_transform_8x8_256b' that is compiled without support for 'avx2'
parallel_matrix_op.c: return _mm256_shuffle_epi8(tab_l,v&mask_f)^_mm256_shuffle_epi8(tab_h,_mm256_srli_epi16(v,4)&mask_f);
parallel_matrix_op.c: ^
parallel_matrix_op.c: ./gf16_avx2.h:29:71: error: always_inline function '_mm256_srli_epi16' requires target feature 'avx2', but would be inlined into function 'linear_transform_8x8_256b' that is compiled without support for 'avx2'
parallel_matrix_op.c: return _mm256_shuffle_epi8(tab_l,v&mask_f)^_mm256_shuffle_epi8(tab_h,_mm256_srli_epi16(v,4)&mask_f);
parallel_matrix_op.c: ^
parallel_matrix_op.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blas_comm.c: In file included from blas_comm.c:6:
blas_comm.c: In file included from ./blas.h:25:
blas_comm.c: ./blas_avx2.h:88:17: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'gf256v_add_avx2' that is compiled without support for 'avx'
blas_comm.c: __m256i inp = _mm256_loadu_si256( (__m256i*) (a+i*32) );
blas_comm.c: ^
blas_comm.c: ./blas_avx2.h:88:17: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blas_comm.c: ./blas_avx2.h:89:17: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'gf256v_add_avx2' that is compiled without support for 'avx'
blas_comm.c: __m256i out = _mm256_loadu_si256( (__m256i*) (accu_b+i*32) );
blas_comm.c: ^
blas_comm.c: ./blas_avx2.h:89:17: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blas_comm.c: ./blas_avx2.h:91:3: error: always_inline function '_mm256_storeu_si256' requires target feature 'avx', but would be inlined into function 'gf256v_add_avx2' that is compiled without support for 'avx'
blas_comm.c: _mm256_storeu_si256( (__m256i*) (accu_b+i*32) , out );
blas_comm.c: ^
blas_comm.c: ./blas_avx2.h:91:3: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blas_comm.c: 6 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
parallel_matrix_op.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
parallel_matrix_op.c: from blas_avx2.h:10,
parallel_matrix_op.c: from blas.h:25,
parallel_matrix_op.c: from parallel_matrix_op.c:8:
parallel_matrix_op.c: gf16_avx2.h: In function 'linear_transform_8x8_256b':
parallel_matrix_op.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:588:1: error: inlining failed in call to 'always_inline' '_mm256_shuffle_epi8': target specific option mismatch
parallel_matrix_op.c: 588 | _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
parallel_matrix_op.c: | ^~~~~~~~~~~~~~~~~~~
parallel_matrix_op.c: In file included from blas_avx2.h:15,
parallel_matrix_op.c: from blas.h:25,
parallel_matrix_op.c: from parallel_matrix_op.c:8:
parallel_matrix_op.c: gf16_avx2.h:29:52: note: called from here
parallel_matrix_op.c: 29 | return _mm256_shuffle_epi8(tab_l,v&mask_f)^_mm256_shuffle_epi8(tab_h,_mm256_srli_epi16(v,4)&mask_f);
parallel_matrix_op.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
parallel_matrix_op.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
parallel_matrix_op.c: from blas_avx2.h:10,
parallel_matrix_op.c: from blas.h:25,
parallel_matrix_op.c: from parallel_matrix_op.c:8:
parallel_matrix_op.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:759:1: error: inlining failed in call to 'always_inline' '_mm256_srli_epi16': target specific option mismatch
parallel_matrix_op.c: 759 | _mm256_srli_epi16 (__m256i __A, int __B)
parallel_matrix_op.c: | ^~~~~~~~~~~~~~~~~
parallel_matrix_op.c: In file included from blas_avx2.h:15,
parallel_matrix_op.c: from blas.h:25,
parallel_matrix_op.c: from parallel_matrix_op.c:8:
parallel_matrix_op.c: gf16_avx2.h:29:78: note: called from here
parallel_matrix_op.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2

Compiler output

Implementation: ssse3
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
parallel_matrix_op.c: In file included from parallel_matrix_op.c:8:
parallel_matrix_op.c: In file included from ./blas.h:25:
parallel_matrix_op.c: In file included from ./blas_sse.h:16:
parallel_matrix_op.c: ./gf16_sse.h:34:9: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'linear_transform_8x8_128b' that is compiled without support for 'ssse3'
parallel_matrix_op.c: return _mm_shuffle_epi8(tab_l,v&mask_f)^_mm_shuffle_epi8(tab_h,_mm_srli_epi16(v,4)&mask_f);
parallel_matrix_op.c: ^
parallel_matrix_op.c: ./gf16_sse.h:34:42: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'linear_transform_8x8_128b' that is compiled without support for 'ssse3'
parallel_matrix_op.c: return _mm_shuffle_epi8(tab_l,v&mask_f)^_mm_shuffle_epi8(tab_h,_mm_srli_epi16(v,4)&mask_f);
parallel_matrix_op.c: ^
parallel_matrix_op.c: 2 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ssse3