Implementation notes: amd64, genji441, crypto_sign/rainbow1b

Computer: genji441
Architecture: amd64
CPU ID: GenuineIntel-000406f1-bfebfbff
SUPERCOP version: 20180818
Operation: crypto_sign
Primitive: rainbow1b
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
977140? ? ?? ? ?avx2icc_-xCORE-AVX2_-O3_-fomit-frame-pointer2018082020180818
986044? ? ?? ? ?avx2icc2018082020180818
986552? ? ?? ? ?avx2icc_-xSSE4.2_-O2_-fomit-frame-pointer2018082020180818
988156? ? ?? ? ?avx2icc_-xCORE-AVX2_-O2_-fomit-frame-pointer2018082020180818
989528? ? ?? ? ?avx2icc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2018082020180818
991188? ? ?? ? ?avx2icc_-xSSE4.1_-O3_-fomit-frame-pointer2018082020180818
992480? ? ?? ? ?avx2icc_-xAVX_-O2_-fomit-frame-pointer2018082020180818
994440? ? ?? ? ?avx2icc_-xSSE4.1_-O2_-fomit-frame-pointer2018082020180818
994756? ? ?? ? ?avx2icc_-no-vec2018082020180818
999684? ? ?? ? ?avx2icc_-xAVX_-O3_-fomit-frame-pointer2018082020180818
1001192? ? ?? ? ?avx2icc_-xSSE4.2_-O3_-fomit-frame-pointer2018082020180818
1107836? ? ?? ? ?avx2icc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2018082020180818
7092724? ? ?? ? ?reficc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2018082020180818
7096388? ? ?? ? ?portableicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2018082020180818
7096764? ? ?? ? ?reficc_-xAVX_-O3_-fomit-frame-pointer2018082020180818
7097312? ? ?? ? ?portableicc_-xAVX_-O3_-fomit-frame-pointer2018082020180818
7113472? ? ?? ? ?reficc_-xSSE4.2_-O3_-fomit-frame-pointer2018082020180818
7115104? ? ?? ? ?portableicc_-xSSE4.2_-O3_-fomit-frame-pointer2018082020180818
7120208? ? ?? ? ?portableicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2018082020180818
7121764? ? ?? ? ?reficc_-xCORE-AVX2_-O3_-fomit-frame-pointer2018082020180818
7144860? ? ?? ? ?reficc_-xSSE4.1_-O3_-fomit-frame-pointer2018082020180818
7145604? ? ?? ? ?portableicc_-xSSE4.1_-O3_-fomit-frame-pointer2018082020180818
7463720? ? ?? ? ?reficc_-xCORE-AVX2_-O2_-fomit-frame-pointer2018082020180818
7498012? ? ?? ? ?portableicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2018082020180818
7535328? ? ?? ? ?reficc_-xSSE4.2_-O2_-fomit-frame-pointer2018082020180818
7537704? ? ?? ? ?reficc_-xSSE4.1_-O2_-fomit-frame-pointer2018082020180818
7541072? ? ?? ? ?reficc2018082020180818
7542676? ? ?? ? ?reficc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2018082020180818
7545352? ? ?? ? ?reficc_-xAVX_-O2_-fomit-frame-pointer2018082020180818
7545896? ? ?? ? ?portableicc_-xSSE4.2_-O2_-fomit-frame-pointer2018082020180818
7546400? ? ?? ? ?portableicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2018082020180818
7548172? ? ?? ? ?portableicc2018082020180818
7548716? ? ?? ? ?portableicc_-xSSE4.1_-O2_-fomit-frame-pointer2018082020180818
7567608? ? ?? ? ?portableicc_-no-vec2018082020180818
7571272? ? ?? ? ?reficc_-no-vec2018082020180818
8146536? ? ?? ? ?portableicc_-xAVX_-O2_-fomit-frame-pointer2018082020180818

Compiler output

Implementation: avx2
Security model: unknown
Compiler: cc
blas.c: In file included from gf31_sse.h:9:0,
blas.c: from blas_avx2.h:6,
blas.c: from blas.h:17,
blas.c: from blas.c:1:
blas.c: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/tmmintrin.h:31:3: error: #error "SSSE3 instruction set not enabled"
blas.c: # error "SSSE3 instruction set not enabled"
blas.c: ^
blas.c: In file included from blas_avx2.h:6:0,
blas.c: from blas.h:17,
blas.c: from blas.c:1:
blas.c: gf31_sse.h: In function 'gf31_inv_sse':
blas.c: gf31_sse.h:23:20: error: incompatible types when initializing type '__m128i' using type 'int'
blas.c: __m128i inv_16p = _mm_shuffle_epi8( _mm_load_si128( (__m128i*)gf31_inv_tab2 ) , aa_16 );
blas.c: ^
blas.c: gf31_sse.h:26:20: error: incompatible types when initializing type '__m128i' using type 'int'
blas.c: __m128i inv_16m = _mm_shuffle_epi8( _mm_load_si128( (__m128i*)(gf31_inv_tab2+16) ) , aa_16m );
blas.c: ^
blas.c: In file included from blas.h:17:0,
blas.c: from blas.c:1:
blas.c: blas_avx2.h: At top level:
blas.c: blas_avx2.h:17:1: error: unknown type name '__m256i'
blas.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
blas.c: ^
blas.c: blas_avx2.h: In function 'gf31v_u8_to_u16':
blas.c: blas_avx2.h:31:3: error: unknown type name '__m256i'
blas.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc
blas.c: In file included from blas.h:17,
blas.c: from blas.c:1:
blas.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
blas.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blas.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
blas.c: ^~~~~~~
rainbow.c: In file included from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
rainbow.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
rainbow.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
rainbow.c: ^~~~~~~
rainbow.c: blas_avx2.h: In function '_gf31v_reduce_u16_avx2':
rainbow.c: blas_avx2.h:110:9: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
rainbow.c: __m256i _gf31v_reduce_u16_avx2( __m256i a ){
rainbow.c: ^~~~~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from gf31_sse.h:9,
rainbow.c: from blas_avx2.h:6,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf31_sse.h: In function 'gf31_inv_sse':
rainbow.c: /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
rainbow.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
rainbow.c: ^~~~~~~~~~~~~~~~
rainbow.c: In file included from blas_avx2.h:6,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf31_sse.h:26:20: note: called from here
rainbow.c: ...

Number of similar (compiler,implementation) pairs: 70, namely:
CompilerImplementations
gcc avx2
gcc -O2 -fomit-frame-pointer avx2
gcc -O3 -fomit-frame-pointer avx2
gcc -O -fomit-frame-pointer avx2
gcc -Os -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops avx2
gcc -funroll-loops -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -O -fomit-frame-pointer avx2
gcc -funroll-loops -Os -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx2
gcc -m64 -O2 -fomit-frame-pointer avx2
gcc -m64 -O3 -fomit-frame-pointer avx2
gcc -m64 -O -fomit-frame-pointer avx2
gcc -m64 -Os -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -march=barcelona -O -fomit-frame-pointer avx2
gcc -march=barcelona -Os -fomit-frame-pointer avx2
gcc -march=k8 -O2 -fomit-frame-pointer avx2
gcc -march=k8 -O3 -fomit-frame-pointer avx2
gcc -march=k8 -O -fomit-frame-pointer avx2
gcc -march=k8 -Os -fomit-frame-pointer avx2
gcc -march=nocona -O2 -fomit-frame-pointer avx2
gcc -march=nocona -O3 -fomit-frame-pointer avx2
gcc -march=nocona -O -fomit-frame-pointer avx2
gcc -march=nocona -Os -fomit-frame-pointer avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
blas.c: In file included from blas.h:17,
blas.c: from blas.c:1:
blas.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
blas.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blas.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
blas.c: ^~~~~~~
rainbow.c: In file included from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
rainbow.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
rainbow.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
rainbow.c: ^~~~~~~
rainbow.c: blas_avx2.h: In function '_gf31v_reduce_u16_avx2':
rainbow.c: blas_avx2.h:110:9: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
rainbow.c: __m256i _gf31v_reduce_u16_avx2( __m256i a ){
rainbow.c: ^~~~~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from gf31_sse.h:9,
rainbow.c: from blas_avx2.h:6,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf31_sse.h: In function 'gf31_inv_sse':
rainbow.c: /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
rainbow.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
rainbow.c: ^~~~~~~~~~~~~~~~
rainbow.c: In file included from blas_avx2.h:6,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf31_sse.h:26:20: note: called from here
rainbow.c: ...
blas.c: In file included from blas.h:17,
blas.c: from blas.c:1:
blas.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
blas.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blas.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
blas.c: ^~~~~~~
rainbow.c: In file included from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
rainbow.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
rainbow.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
rainbow.c: ^~~~~~~
rainbow.c: blas_avx2.h: In function '_gf31v_reduce_u16_avx2':
rainbow.c: blas_avx2.h:110:9: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
rainbow.c: __m256i _gf31v_reduce_u16_avx2( __m256i a ){
rainbow.c: ^~~~~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from gf31_sse.h:9,
rainbow.c: from blas_avx2.h:6,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf31_sse.h: In function 'gf31_inv_sse':
rainbow.c: /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
rainbow.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
rainbow.c: ^~~~~~~~~~~~~~~~
rainbow.c: In file included from blas_avx2.h:6,
rainbow.c: from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: gf31_sse.h:26:20: note: called from here
rainbow.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -Os -fomit-frame-pointer avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
rainbow.c: In file included from /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/immintrin.h:43,
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: /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/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,
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 /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/immintrin.h:43,
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: /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/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,
rainbow.c: from rainbow.h:7,
rainbow.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/knownrandombytes.o: In function `randombytes':
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memcpy'
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-api.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2':
try.c: api.c:(.text+0x...): undefined reference to `__intel_avx_rep_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-chacha.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2_ECRYPT_keystream_bytes':
try.c: chacha.c:(.text+0x...): undefined reference to `__intel_avx_rep_memset'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 224, namely:
CompilerImplementations
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer avx2
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer avx2
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv avx2
gcc portable
gcc -O2 -fomit-frame-pointer portable
gcc -O3 -fomit-frame-pointer portable
gcc -O -fomit-frame-pointer portable
gcc -Os -fomit-frame-pointer portable
gcc -fno-schedule-insns -O2 -fomit-frame-pointer portable
gcc -fno-schedule-insns -O3 -fomit-frame-pointer portable
gcc -fno-schedule-insns -O -fomit-frame-pointer portable
gcc -fno-schedule-insns -Os -fomit-frame-pointer portable
gcc -funroll-loops portable
gcc -funroll-loops -O2 -fomit-frame-pointer portable
gcc -funroll-loops -O3 -fomit-frame-pointer portable
gcc -funroll-loops -O -fomit-frame-pointer portable
gcc -funroll-loops -Os -fomit-frame-pointer portable
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer portable
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer portable
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer portable
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer portable
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -O -fomit-frame-pointer portable
gcc -funroll-loops -m64 -Os -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer portable
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer portable
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer portable
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer portable
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer portable
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer portable
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer portable
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer portable
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer portable
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer portable
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer portable
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer portable
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer portable
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer portable
gcc -m64 -O2 -fomit-frame-pointer portable
gcc -m64 -O3 -fomit-frame-pointer portable
gcc -m64 -O -fomit-frame-pointer portable
gcc -m64 -Os -fomit-frame-pointer portable
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer portable
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer portable
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer portable
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer portable
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer portable
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer portable
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer portable
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer portable
gcc -m64 -march=core2 -O2 -fomit-frame-pointer portable
gcc -m64 -march=core2 -O3 -fomit-frame-pointer portable
gcc -m64 -march=core2 -O -fomit-frame-pointer portable
gcc -m64 -march=core2 -Os -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer portable
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer portable
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer portable
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer portable
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer portable
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer portable
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer portable
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer portable
gcc -m64 -march=corei7 -O -fomit-frame-pointer portable
gcc -m64 -march=corei7 -Os -fomit-frame-pointer portable
gcc -m64 -march=k8 -O2 -fomit-frame-pointer portable
gcc -m64 -march=k8 -O3 -fomit-frame-pointer portable
gcc -m64 -march=k8 -O -fomit-frame-pointer portable
gcc -m64 -march=k8 -Os -fomit-frame-pointer portable
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer portable
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer portable
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer portable
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer portable
gcc -m64 -march=nocona -O2 -fomit-frame-pointer portable
gcc -m64 -march=nocona -O3 -fomit-frame-pointer portable
gcc -m64 -march=nocona -O -fomit-frame-pointer portable
gcc -m64 -march=nocona -Os -fomit-frame-pointer portable
gcc -march=barcelona -O2 -fomit-frame-pointer portable
gcc -march=barcelona -O3 -fomit-frame-pointer portable
gcc -march=barcelona -O -fomit-frame-pointer portable
gcc -march=barcelona -Os -fomit-frame-pointer portable
gcc -march=k8 -O2 -fomit-frame-pointer portable
gcc -march=k8 -O3 -fomit-frame-pointer portable
gcc -march=k8 -O -fomit-frame-pointer portable
gcc -march=k8 -Os -fomit-frame-pointer portable
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv portable
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv portable
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv portable
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv portable
gcc -march=nocona -O2 -fomit-frame-pointer portable
gcc -march=nocona -O3 -fomit-frame-pointer portable
gcc -march=nocona -O -fomit-frame-pointer portable
gcc -march=nocona -Os -fomit-frame-pointer portable
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=k8 -O2 -fomit-frame-pointer ref
gcc -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -O -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref
gcc -march=nocona -O2 -fomit-frame-pointer ref
gcc -march=nocona -O3 -fomit-frame-pointer ref
gcc -march=nocona -O -fomit-frame-pointer ref
gcc -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -m64 -march=core2 -O2 -fomit-frame-pointer
blas.c: In file included from blas.h:17,
blas.c: from blas.c:1:
blas.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
blas.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blas.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
blas.c: ^~~~~~~
rainbow.c: In file included from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h: In function '_gf31v_u8_to_u16_avx2':
rainbow.c: blas_avx2.h:17:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
rainbow.c: __m256i _gf31v_u8_to_u16_avx2( __m128i a ) {
rainbow.c: ^~~~~~~
rainbow.c: blas_avx2.h: In function '_gf31v_reduce_u16_avx2':
rainbow.c: blas_avx2.h:110:9: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
rainbow.c: __m256i _gf31v_reduce_u16_avx2( __m256i a ){
rainbow.c: ^~~~~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/immintrin.h:41,
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_u8_to_u16_avx2':
rainbow.c: /home_nfs_robin_ib/bdolbeaur/gcc-8.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/avxintrin.h:767:1: error: inlining failed in call to always_inline '_mm256_insertf128_si256': target specific option mismatch
rainbow.c: _mm256_insertf128_si256 (__m256i __X, __m128i __Y, const int __O)
rainbow.c: ^~~~~~~~~~~~~~~~~~~~~~~
rainbow.c: In file included from blas.h:17,
rainbow.c: from rainbow.h:7,
rainbow.c: from rainbow.c:4:
rainbow.c: blas_avx2.h:22:9: note: called from here
rainbow.c: return _mm256_insertf128_si256 ( _mm256_castsi128_si256(a0) , a1 , 1 );
rainbow.c: ...

Number of similar (compiler,implementation) pairs: 16, namely:
CompilerImplementations
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx2

Compiler output

Implementation: portable
Security model: unknown
Compiler: cc
gf31_convert.c: gf31_convert.c: In function 'gf31_sanity_check':
gf31_convert.c: gf31_convert.c:7:2: error: 'for' loop initial declarations are only allowed in C99 mode
gf31_convert.c: for(unsigned i=0;i<n;i++) {
gf31_convert.c: ^
gf31_convert.c: gf31_convert.c:7:2: note: use option -std=c99 or -std=gnu99 to compile your code
gf31_convert.c: gf31_convert.c: In function 'gf31_from_digest':
gf31_convert.c: gf31_convert.c:93:3: error: 'for' loop initial declarations are only allowed in C99 mode
gf31_convert.c: for(unsigned i=0;i<4;i++) {
gf31_convert.c: ^

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
cc portable ref

Compiler output

Implementation: portable
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/knownrandombytes.o: In function `randombytes':
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memcpy'
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-api.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2':
try.c: api.c:(.text+0x...): undefined reference to `__intel_avx_rep_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-chacha.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2_ECRYPT_keystream_bytes':
try.c: chacha.c:(.text+0x...): undefined reference to `__intel_avx_rep_memset'
try.c: collect2: error: ld returned 1 exit status
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/knownrandombytes.o: In function `randombytes':
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memcpy'
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-api.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2':
try.c: api.c:(.text+0x...): undefined reference to `__intel_avx_rep_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji441/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-chacha.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2_ECRYPT_keystream_bytes':
try.c: chacha.c:(.text+0x...): undefined reference to `__intel_avx_rep_memset'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer portable
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer portable
gcc -m64 -march=barcelona -O -fomit-frame-pointer portable
gcc -m64 -march=barcelona -Os -fomit-frame-pointer portable
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref