Implementation notes: amd64, h9trinity, crypto_sign/rainbow1c

Computer: h9trinity
Architecture: amd64
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20200618
Operation: crypto_sign
Primitive: rainbow1c
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
496818456751 0 104862873203 872 1050240portableclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
575989472134 0 104862891533 880 1050240portableclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
579773758348 0 104862877397 880 1050240portableclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
579801958348 0 104862877397 880 1050240portableclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
587539669036 0 104862889653 880 1050240portableclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
642634949332 0 104864467210 888 1050304portablegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409
647521545859 0 104864463682 888 1050304portablegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409
10622977153818 0 1048644173906 888 1050304refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409
118371399904 0 104864427043 888 1050272portablegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042220200409
1902865156406 0 104862874645 880 1050240refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
1904237256406 0 104862874645 880 1050240refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
1918466469510 0 104862889333 880 1050240refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
1972627279453 0 104862898013 880 1050240refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
2898470342935 0 104862859379 872 1050240refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020042320200409
3291976562748 0 104864480586 888 1050304refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409
3407215665390 0 104864483289 896 1050304refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020042320200409

Test failure

Implementation: portable
Security model: unknown
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE portable

Test failure

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
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:21:
rainbow.c: ./blas_avx2.h:208:16: error: '__builtin_ia32_permti256' needs target feature avx2
rainbow.c: __m256i ml = _mm256_permute2x128_si256(mt,mt,0x00 );
rainbow.c: ^
rainbow.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/avx2intrin.h:975:12: note: expanded from macro '_mm256_permute2x128_si256'
rainbow.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
rainbow.c: ^
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:21:
rainbow.c: ./blas_avx2.h:209:16: error: '__builtin_ia32_permti256' needs target feature avx2
rainbow.c: __m256i mh = _mm256_permute2x128_si256(mt,mt,0x11 );
rainbow.c: ^
rainbow.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/avx2intrin.h:975:12: note: expanded from macro '_mm256_permute2x128_si256'
rainbow.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
rainbow.c: ^
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:21:
rainbow.c: ./blas_avx2.h:212:12: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'gf256mat_prod_multab_avx2' that is compiled without support for 'avx2'
rainbow.c: r[j] ^= _mm256_shuffle_epi8( ml , inp&mask_f );
rainbow.c: ^
rainbow.c: ./blas_avx2.h:213:12: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'gf256mat_prod_multab_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:21:
rainbow.c: In file included from ./blas_avx2.h:13:
rainbow.c: ./blas_sse.h:661:24: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_gf256mat_gauss_elim_sse' that is compiled without support for 'ssse3'
rainbow.c: __m128i madd_mask = _mm_shuffle_epi8( is_madd , _mm_set1_epi8(i_r) );
rainbow.c: ^
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:21:
rainbow.c: In file included from ./blas_avx2.h:11:
rainbow.c: In file included from ./gf16_avx2.h:8:
rainbow.c: ./gf16_sse.h:78:9: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tbl_gf16_squ_x8' that is compiled without support for 'ssse3'
rainbow.c: return _mm_shuffle_epi8(tab_l,a);
rainbow.c: ^
rainbow.c: ./gf16_sse.h:118:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tbl_gf16_mul' that is compiled without support for 'ssse3'
rainbow.c: __m128i la = _mm_shuffle_epi8(log_16,a);
rainbow.c: ^
rainbow.c: ./gf16_sse.h:119:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tbl_gf16_mul' that is compiled without support for 'ssse3'
rainbow.c: __m128i lb = _mm_shuffle_epi8(log_16,b);
rainbow.c: ^
rainbow.c: ./gf16_sse.h:122:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tbl_gf16_mul' that is compiled without support for 'ssse3'
rainbow.c: __m128i r0 = _mm_shuffle_epi8(exp_16, _mm_sub_epi8(la_lb, mask_f&_mm_cmpgt_epi8(la_lb,mask_f) ) );
rainbow.c: ^
rainbow.c: ./gf16_sse.h:85:9: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tbl_gf16_inv' that is compiled without support for 'ssse3'
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:6,
rainbow.c: from blas.h:21,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf16_avx2.h: In function 'tbl32_gf16_log':
rainbow.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:588:1: error: inlining failed in call to always_inline '_mm256_shuffle_epi8': target specific option mismatch
rainbow.c: _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
rainbow.c: ^~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from blas_avx2.h:11:0,
rainbow.c: from blas.h:21,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf16_avx2.h:73:9: note: called from here
rainbow.c: return _mm256_shuffle_epi8(tab_l,a);
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:6,
rainbow.c: from blas.h:21,
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:588:1: error: inlining failed in call to always_inline '_mm256_shuffle_epi8': target specific option mismatch
rainbow.c: _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
rainbow.c: ^~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from blas_avx2.h:11:0,
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: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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_genkey T
rainbow.o rainbow_secmap T
rainbow.o rainbow_sign T
rainbow.o rainbow_verify T

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 -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref