Implementation notes: amd64, h9trinity, crypto_sign/rainbow3b

Computer: h9trinity
Architecture: amd64
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20200618
Operation: crypto_sign
Primitive: rainbow3b
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
11454766245276 0 1049700265402 888 1051360portablegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409
11487534245276 0 1049700265402 888 1051360refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409

Test failure

Implementation: portable
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 142
Alarm clock

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -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: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: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: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:112:9: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function '_gf31v_reduce_u16_avx2' that is compiled without support for 'avx2'
rainbow.c: return _mm256_add_epi16( a&mask , _mm256_srli_epi16(a,5) );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:112:36: error: always_inline function '_mm256_srli_epi16' requires target feature 'avx2', but would be inlined into function '_gf31v_reduce_u16_avx2' that is compiled without support for 'avx2'
rainbow.c: return _mm256_add_epi16( a&mask , _mm256_srli_epi16(a,5) );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:143:15: error: always_inline function '_mm256_sub_epi8' requires target feature 'avx2', but would be inlined into function '_gf31v_reduce_u8_avx2' that is compiled without support for 'avx2'
rainbow.c: __m256i r1 = _mm256_sub_epi8( a , _mm256_cmpgt_epi8(a,mask_30)&mask_31 );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:143:36: error: always_inline function '_mm256_cmpgt_epi8' requires target feature 'avx2', but would be inlined into function '_gf31v_reduce_u8_avx2' that is compiled without support for 'avx2'
rainbow.c: __m256i r1 = _mm256_sub_epi8( a , _mm256_cmpgt_epi8(a,mask_30)&mask_31 );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:144:15: error: always_inline function '_mm256_sub_epi8' requires target feature 'avx2', but would be inlined into function '_gf31v_reduce_u8_avx2' that is compiled without support for 'avx2'
rainbow.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: unknown
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 'sse4.2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'sse4.2'
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 'sse4.2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'sse4.2'
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 'sse4.2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'sse4.2'
rainbow.c: __m256i tmp = _mm256_loadu_si256( (__m256i*)(mat+j*32) );
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: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: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: always_inline function '_mm256_undefined_si256' requires target feature 'sse4.2', but would be inlined into function 'gf31mat_prod_avx2' that is compiled without support for 'sse4.2'
rainbow.c: r[j] = _mm256_permute4x64_epi64( r[j] , 0xd8 ); // 3,1,2,0
rainbow.c: ^
rainbow.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/avx2intrin.h:968:44: 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 avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
rainbow.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
rainbow.c: from blas_avx2.h:8,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h: In function '_gf31v_reduce_u16_avx2':
rainbow.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:112:1: error: inlining failed in call to always_inline '_mm256_add_epi16': target specific option mismatch
rainbow.c: _mm256_add_epi16 (__m256i __A, __m256i __B)
rainbow.c: ^~~~~~~~~~~~~~~~
rainbow.c: In file included from blas.h:17:0,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h:112:9: note: called from here
rainbow.c: return _mm256_add_epi16( a&mask , _mm256_srli_epi16(a,5) );
rainbow.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
rainbow.c: from blas_avx2.h:8,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:759:1: error: inlining failed in call to always_inline '_mm256_srli_epi16': target specific option mismatch
rainbow.c: _mm256_srli_epi16 (__m256i __A, int __B)
rainbow.c: ^~~~~~~~~~~~~~~~~
rainbow.c: In file included from blas.h:17:0,
rainbow.c: from rainbow.h:7,
rainbow.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

Namespace violations

Implementation: portable
Security model: unknown
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -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: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE portable ref