Implementation notes: amd64, r24000, crypto_sign/rainbow1b

Computer: r24000
Microarchitecture: amd64; Coffee Lake (906ea)
Architecture: amd64
CPU ID: GenuineIntel-000906ea-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_sign
Primitive: rainbow1b
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
41202860284 0 104968484602 916 1051432T:avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
41537152387 0 104968476802 916 1051432T:avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
41576152387 0 104968476802 916 1051432T:avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
96661951792 0 104973276956 916 1051528T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
98875818630 0 104968440084 908 1051432T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
99183025379 0 104973247987 924 1051528T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
99332624447 0 104973246963 924 1051528T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
116719612656 0 104973234396 924 1051496T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
283742671021 0 104965294322 916 1051432T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
283808471021 0 104965294322 916 1051432T:portableclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
3532513133824 0 1049700159060 916 1051528T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
3533438133824 0 1049700159060 916 1051528T:portablegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
459750463254 0 104965286994 916 1051432T:portableclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
459762763254 0 104965286994 916 1051432T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
459767263254 0 104965286994 916 1051432T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
459781663254 0 104965286994 916 1051432T:portableclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
467259796058 0 1049652119666 916 1051432T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
467416996058 0 1049652119698 916 1051432T:portableclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
610440833619 0 104970056180 916 1051528T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
610998533619 0 104970056180 916 1051528T:portablegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
637461330879 0 104970053364 916 1051528T:portablegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
637494830879 0 104970053364 916 1051528T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
665559818414 0 104965239876 908 1051432T:portableclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
665562418414 0 104965239876 908 1051432T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024011620240107
868962510860 0 104970032589 916 1051496T:portablegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107
869031210860 0 104970032557 916 1051496T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011620240107

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rainbow.c: In file included from rainbow.c:4:
rainbow.c: In file included from ./rainbow.h:7:
rainbow.c: In file included from ./blas.h:17:
rainbow.c: ./blas_avx2.h:265:39: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'avx'
rainbow.c: for(unsigned i=0;i<n_ymm;i++) r[i] = _mm256_setzero_si256();
rainbow.c: ^
rainbow.c: ./blas_avx2.h:270:16: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'avx'
rainbow.c: __m256i bi = _mm256_set1_epi16( b_u16[i] );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:273:18: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'avx'
rainbow.c: __m256i tmp = _mm256_loadu_si256( (__m256i*)(mat+j*32) );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:274:36: error: always_inline function '_mm256_maddubs_epi16' requires target feature 'avx2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'avx2'
rainbow.c: r[j] = _mm256_add_epi16( r[j] , _mm256_maddubs_epi16( tmp , bi ) );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:274:11: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'avx2'
rainbow.c: r[j] = _mm256_add_epi16( r[j] , _mm256_maddubs_epi16( tmp , bi ) );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:287:10: error: always_inline function '_mm256_packs_epi16' requires target feature 'avx2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'avx2'
rainbow.c: r[j] = _mm256_packs_epi16( r[j*2] , r[j*2+1] );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:288:10: error: '__builtin_ia32_permdi256' needs target feature avx2
rainbow.c: r[j] = _mm256_permute4x64_epi64( r[j] , 0xd8 ); // 3,1,2,0
rainbow.c: ^
rainbow.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/avx2intrin.h:816:12: note: expanded from macro '_mm256_permute4x64_epi64'
rainbow.c: ...

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

Namespace violations

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blas.o __zero_32 B
gf31_convert.o gf31_from_digest T
gf31_convert.o gf31_quick_pack T
gf31_convert.o gf31_quick_unpack T
gf31_convert.o gf31_sanity_check T
gf31_table.o gf31_inv_tab R
gf31_table.o gf31_inv_tab2 R
hash_utils.o sha2_chain T
hash_utils.o sha2_chain_byte T
hash_utils.o sha2_chain_file T
hash_utils.o sha2_chain_msg T
hash_utils.o sha2_file T
prng_utils.o prng_bytes T
prng_utils.o prng_dump T
prng_utils.o prng_dump_set T
prng_utils.o prng_expand_buffer T
prng_utils.o userrand_bytes T
prng_utils.o userrand_dump_generated T
prng_utils.o userrand_source_file T
rainbow.o rainbow_central_map T
rainbow.o rainbow_genkey T
rainbow.o rainbow_genkey_debug T
rainbow.o rainbow_ivs_central_map T
rainbow.o rainbow_pubmap_seckey T
rainbow.o rainbow_secmap T
rainbow.o rainbow_sign T
rainbow.o rainbow_verify T

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

Namespace violations

Implementation: T:portable
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gf31_convert.o gf31_from_digest T
gf31_convert.o gf31_quick_pack T
gf31_convert.o gf31_quick_unpack T
gf31_convert.o gf31_sanity_check T
hash_utils.o sha2_chain T
hash_utils.o sha2_chain_byte T
hash_utils.o sha2_chain_file T
hash_utils.o sha2_chain_msg T
hash_utils.o sha2_file T
prng_utils.o prng_bytes T
prng_utils.o prng_dump T
prng_utils.o prng_dump_set T
prng_utils.o prng_expand_buffer T
prng_utils.o userrand_bytes T
prng_utils.o userrand_dump_generated T
prng_utils.o userrand_source_file T
rainbow.o rainbow_central_map T
rainbow.o rainbow_genkey T
rainbow.o rainbow_genkey_debug T
rainbow.o rainbow_ivs_central_map T
rainbow.o rainbow_pubmap_seckey T
rainbow.o rainbow_secmap T
rainbow.o rainbow_sign T
rainbow.o rainbow_verify T

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:portable
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:portable
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:portable
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:portable
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:portable
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref