Implementation notes: amd64, margaux, crypto_kem/mceliece6960119f

Computer: margaux
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20191221
Operation: crypto_kem
Primitive: mceliece6960119f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3202578161427 0 0254475 824 1608vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
388093573683 0 0166136 864 1576vecclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
388881073621 0 0165296 864 1576vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
391038373509 0 0166104 864 1576vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
391464073621 0 0165296 864 1576vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
426479455672 0 0146254 856 1576vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
432387053727 0 0144459 816 1576vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
437589969440 0 0161099 824 1608vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
447471069059 0 0160491 824 1608vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
50342411730722 0 0123168 864 1576refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
50501782829288 0 0120952 864 1576refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
50535826229288 0 0120952 864 1576refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
50554614630439 0 0123040 864 1576refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
55559570478037 0 0171557 832 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
63113763614115 0 0104790 856 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
70574093113675 0 0104315 816 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
70615450816923 0 0108579 824 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
74214761416714 0 0108131 824 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221

Compiler output

Implementation: crypto_kem/mceliece6960119f/avx
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:133:30: error: always_inline function '_mm256_extract_epi64' requires target feature 'xsave', but would be inlined into function 'get_coefs' that is compiled without support for 'xsave'
bm.c: out[ (4*j + k)*16 + i ] = (vec256_extract(buf[i], j) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:31:41: note: expanded from macro 'vec256_extract'
bm.c: #define vec256_extract(a,i) ((uint64_t) _mm256_extract_epi64((vec256) (a),(i)))
bm.c: ^
bm.c: ./vec256.h:22:10: error: always_inline function '_mm256_setzero_si256' requires target feature 'xsave', but would be inlined into function 'vec256_setzero' that is compiled without support for 'xsave'
bm.c: return _mm256_setzero_si256();
bm.c: ^
bm.c: ./vec256.h:17:9: error: always_inline function '_mm256_set1_epi16' requires target feature 'xsave', but would be inlined into function 'vec256_set1_16b' that is compiled without support for 'xsave'
bm.c: return _mm256_set1_epi16(a);
bm.c: ^
bm.c: bm.c:64:2: error: always_inline function '_mm256_slli_epi64' requires target feature 'xsave', but would be inlined into function 'interleave' that is compiled without support for 'xsave'
bm.c: vec256_sll_4x(vec256_and(in[idx1], mask[0]), s));
bm.c: ^
bm.c: ./vec256.h:53:39: note: expanded from macro 'vec256_sll_4x'
bm.c: #define vec256_sll_4x(a, s) ((vec256) _mm256_slli_epi64((vec256) (a), (s)))
bm.c: ^
bm.c: bm.c:66:16: error: always_inline function '_mm256_srli_epi64' requires target feature 'xsave', but would be inlined into function 'interleave' that is compiled without support for 'xsave'
bm.c: y = vec256_or(vec256_srl_4x(vec256_and(in[idx0], mask[1]), s),
bm.c: ^
bm.c: ./vec256.h:54:39: note: expanded from macro 'vec256_srl_4x'
bm.c: #define vec256_srl_4x(a, s) ((vec256) _mm256_srli_epi64((vec256) (a), (s)))
bm.c: ^
bm.c: ./vec256.h:50:9: error: always_inline function '_mm256_or_si256' requires target feature 'xsave', but would be inlined into function 'vec256_or' that is compiled without support for 'xsave'
bm.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/sse
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:9:
decrypt.c: ./vec128.h:30:9: error: always_inline function '_mm_testz_si128' requires target feature 'sse4.1', but would be inlined into function 'vec128_testz' that is compiled without support for 'sse4.1'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: fatal error: error in backend: Cannot select: 0x3f8f6a0: i32 = X86ISD::PTEST 0x3f88c20, 0x3f88c20
decrypt.c: 0x3f88c20: v2i64,ch = CopyFromReg 0x3e4d940, Register:v2i64 %vreg81
decrypt.c: 0x3f4bf00: v2i64 = Register %vreg81
decrypt.c: 0x3f88c20: v2i64,ch = CopyFromReg 0x3e4d940, Register:v2i64 %vreg81
decrypt.c: 0x3f4bf00: v2i64 = Register %vreg81
decrypt.c: In function: decrypt
decrypt.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
decrypt.c: clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
decrypt.c: Target: x86_64-pc-linux-gnu
decrypt.c: Thread model: posix
decrypt.c: InstalledDir: /usr/bin
decrypt.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ********************
decrypt.c:
decrypt.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
decrypt.c: Preprocessed source(s) and associated run script(s) are located at:
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-dca94a.c
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-dca94a.sh
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/sse
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:9:
decrypt.c: ./vec128.h:30:9: error: always_inline function '_mm_testz_si128' requires target feature 'sse4.1', but would be inlined into function 'vec128_testz' that is compiled without support for 'sse4.1'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: fatal error: error in backend: Cannot select: 0x2ac5c30: i32 = X86ISD::PTEST 0x2abf1b0, 0x2abf1b0
decrypt.c: 0x2abf1b0: v2i64,ch = CopyFromReg 0x2983a50, Register:v2i64 %vreg81
decrypt.c: 0x2a5d4f0: v2i64 = Register %vreg81
decrypt.c: 0x2abf1b0: v2i64,ch = CopyFromReg 0x2983a50, Register:v2i64 %vreg81
decrypt.c: 0x2a5d4f0: v2i64 = Register %vreg81
decrypt.c: In function: decrypt
decrypt.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
decrypt.c: clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
decrypt.c: Target: x86_64-pc-linux-gnu
decrypt.c: Thread model: posix
decrypt.c: InstalledDir: /usr/bin
decrypt.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ********************
decrypt.c:
decrypt.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
decrypt.c: Preprocessed source(s) and associated run script(s) are located at:
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-ce0f5b.c
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-ce0f5b.sh
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/sse
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:9:
decrypt.c: ./vec128.h:30:9: error: always_inline function '_mm_testz_si128' requires target feature 'sse4.1', but would be inlined into function 'vec128_testz' that is compiled without support for 'sse4.1'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: fatal error: error in backend: Cannot select: 0x2600490: i32 = X86ISD::PTEST 0x25ee0e0, 0x25ee0e0
decrypt.c: 0x25ee0e0: v2i64,ch = CopyFromReg 0x24b3960, Register:v2i64 %vreg81
decrypt.c: 0x258e000: v2i64 = Register %vreg81
decrypt.c: 0x25ee0e0: v2i64,ch = CopyFromReg 0x24b3960, Register:v2i64 %vreg81
decrypt.c: 0x258e000: v2i64 = Register %vreg81
decrypt.c: In function: decrypt
decrypt.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
decrypt.c: clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
decrypt.c: Target: x86_64-pc-linux-gnu
decrypt.c: Thread model: posix
decrypt.c: InstalledDir: /usr/bin
decrypt.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ********************
decrypt.c:
decrypt.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
decrypt.c: Preprocessed source(s) and associated run script(s) are located at:
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-c79959.c
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-c79959.sh
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/sse
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:9:
decrypt.c: ./vec128.h:30:9: error: always_inline function '_mm_testz_si128' requires target feature 'sse4.1', but would be inlined into function 'vec128_testz' that is compiled without support for 'sse4.1'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: fatal error: error in backend: Cannot select: 0x33485c0: i32 = X86ISD::PTEST 0x337e420, 0x337e420
decrypt.c: 0x337e420: v2i64,ch = CopyFromReg 0x328e430, Register:v2i64 %vreg98
decrypt.c: 0x33495d0: v2i64 = Register %vreg98
decrypt.c: 0x337e420: v2i64,ch = CopyFromReg 0x328e430, Register:v2i64 %vreg98
decrypt.c: 0x33495d0: v2i64 = Register %vreg98
decrypt.c: In function: decrypt
decrypt.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
decrypt.c: clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
decrypt.c: Target: x86_64-pc-linux-gnu
decrypt.c: Thread model: posix
decrypt.c: InstalledDir: /usr/bin
decrypt.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ********************
decrypt.c:
decrypt.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
decrypt.c: Preprocessed source(s) and associated run script(s) are located at:
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-266763.c
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-266763.sh
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/avx
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:133:30: error: always_inline function '_mm256_extract_epi64' requires target feature 'sse4.2', but would be inlined into function 'get_coefs' that is compiled without support for 'sse4.2'
bm.c: out[ (4*j + k)*16 + i ] = (vec256_extract(buf[i], j) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:31:41: note: expanded from macro 'vec256_extract'
bm.c: #define vec256_extract(a,i) ((uint64_t) _mm256_extract_epi64((vec256) (a),(i)))
bm.c: ^
bm.c: ./vec256.h:22:10: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'vec256_setzero' that is compiled without support for 'sse4.2'
bm.c: return _mm256_setzero_si256();
bm.c: ^
bm.c: ./vec256.h:17:9: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vec256_set1_16b' that is compiled without support for 'sse4.2'
bm.c: return _mm256_set1_epi16(a);
bm.c: ^
bm.c: bm.c:64:2: error: always_inline function '_mm256_slli_epi64' requires target feature 'sse4.2', but would be inlined into function 'interleave' that is compiled without support for 'sse4.2'
bm.c: vec256_sll_4x(vec256_and(in[idx1], mask[0]), s));
bm.c: ^
bm.c: ./vec256.h:53:39: note: expanded from macro 'vec256_sll_4x'
bm.c: #define vec256_sll_4x(a, s) ((vec256) _mm256_slli_epi64((vec256) (a), (s)))
bm.c: ^
bm.c: bm.c:66:16: error: always_inline function '_mm256_srli_epi64' requires target feature 'sse4.2', but would be inlined into function 'interleave' that is compiled without support for 'sse4.2'
bm.c: y = vec256_or(vec256_srl_4x(vec256_and(in[idx0], mask[1]), s),
bm.c: ^
bm.c: ./vec256.h:54:39: note: expanded from macro 'vec256_srl_4x'
bm.c: #define vec256_srl_4x(a, s) ((vec256) _mm256_srli_epi64((vec256) (a), (s)))
bm.c: ^
bm.c: ./vec256.h:50:9: error: always_inline function '_mm256_or_si256' requires target feature 'sse4.2', but would be inlined into function 'vec256_or' that is compiled without support for 'sse4.2'
bm.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/sse
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:9:
decrypt.c: ./vec128.h:30:9: error: always_inline function '_mm_testz_si128' requires target feature 'ssse3', but would be inlined into function 'vec128_testz' that is compiled without support for 'ssse3'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: fatal error: error in backend: Cannot select: 0x2eed0e0: i32 = X86ISD::PTEST 0x2ee4e50, 0x2ee4e50
decrypt.c: 0x2ee4e50: v2i64,ch = CopyFromReg 0x2da8850, Register:v2i64 %vreg81
decrypt.c: 0x2e86f30: v2i64 = Register %vreg81
decrypt.c: 0x2ee4e50: v2i64,ch = CopyFromReg 0x2da8850, Register:v2i64 %vreg81
decrypt.c: 0x2e86f30: v2i64 = Register %vreg81
decrypt.c: In function: decrypt
decrypt.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
decrypt.c: clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
decrypt.c: Target: x86_64-pc-linux-gnu
decrypt.c: Thread model: posix
decrypt.c: InstalledDir: /usr/bin
decrypt.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ********************
decrypt.c:
decrypt.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
decrypt.c: Preprocessed source(s) and associated run script(s) are located at:
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-e60274.c
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-e60274.sh
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ...

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
benes.c: In file included from transpose.h:9:0,
benes.c: from benes.c:8:
benes.c: vec256.h: In function 'vec256_set1_16b':
benes.c: vec256.h:16:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
benes.c: {
benes.c: ^
bm.c: In file included from bm.h:10:0,
bm.c: from bm.c:6:
bm.c: vec256.h: In function 'vec256_set1_16b':
bm.c: vec256.h:16:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
bm.c: {
bm.c: ^
bm.c: vec256.h: In function 'vec256_and':
bm.c: vec256.h:38:22: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
bm.c: static inline vec256 vec256_and(vec256 a, vec256 b)
bm.c: ^
bm.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
bm.c: from vec256.h:11,
bm.c: from bm.h:10,
bm.c: from bm.c:6:
bm.c: vec256.h: In function 'vec256_set1_16b':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1300:1: error: inlining failed in call to always_inline '_mm256_set1_epi16': target specific option mismatch
bm.c: _mm256_set1_epi16 (short __A)
bm.c: ^
bm.c: In file included from bm.h:10:0,
bm.c: from bm.c:6:
bm.c: vec256.h:17:9: error: called from here
bm.c: return _mm256_set1_epi16(a);
bm.c: ^

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

Compiler output

Implementation: crypto_kem/mceliece6960119f/sse
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bm.c: In file included from vec128.h:12:0,
bm.c: from bm.h:10,
bm.c: from bm.c:6:
bm.c: bm.c: In function 'get_coefs':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
bm.c: _mm_extract_epi64 (__m128i __X, const int __N)
bm.c: ^
bm.c: In file included from bm.h:10:0,
bm.c: from bm.c:6:
bm.c: vec128.h:26:42: error: called from here
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ^
bm.c: bm.c:129:30: note: in expansion of macro 'vec128_extract'
bm.c: out[ (4*j + k)*16 + i ] = (vec128_extract(buf[i], j) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: In file included from vec128.h:12:0,
bm.c: from bm.h:10,
bm.c: from bm.c:6:
bm.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
bm.c: _mm_extract_epi64 (__m128i __X, const int __N)
bm.c: ^
bm.c: In file included from bm.h:10:0,
bm.c: from bm.c:6:
bm.c: vec128.h:26:42: error: called from here
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ...

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