Implementation notes: amd64, bolero, crypto_sign/sphincsf256sha256

Computer: bolero
Architecture: amd64
CPU ID: GenuineIntel-000406f1-bfebfbff
SUPERCOP version: 20190110
Operation: crypto_sign
Primitive: sphincsf256sha256
TimeImplementationCompilerBenchmark dateSUPERCOP version
673046672avx2clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2018092020180818
673201576avx2clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018092020180818
711096424avx2clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2018092020180818
717295764avx2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018092020180818
747187120avx2gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018092020180818
748155164avx2gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018092020180818
750694312avx2gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018092020180818
770438484avx2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018092020180818
772166136avx2gcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018092020180818
777010244avx2gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018092020180818
777814172avx2gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018092020180818
801626944avx2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018092020180818
811835844avx2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018092020180818
890442520avx2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018092020180818
897672100avx2gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018092020180818
902615796avx2gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018092020180818
1599834164refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2018092020180818
1599868564refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018092020180818
1605605616refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018092020180818
1605765460refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018092020180818
1605858372refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018092020180818
1606174560refclang -O3 -fomit-frame-pointer -Qunused-arguments2018092020180818
1609263044refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2018092020180818
1614276884refgcc -march=barcelona -O3 -fomit-frame-pointer2018092020180818
1614884332refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018092020180818
1617798544refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018092020180818
1618229292refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018092020180818
1621354188refgcc -m64 -O3 -fomit-frame-pointer2018092020180818
1621383180refgcc -O3 -fomit-frame-pointer2018092020180818
1621510416refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018092020180818
1623651480refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018092020180818
1623769756refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018092020180818
1624200848refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018092020180818
1624637816refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018092020180818
1624708924refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018092020180818
1625646888refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018092020180818
1626471156refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018092020180818
1626494272refgcc -march=k8 -O3 -fomit-frame-pointer2018092020180818
1627162444refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018092020180818
1628428140refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018092020180818
1629153332refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018092020180818
1629168988refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018092020180818
1629877648refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018092020180818
1631053296refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018092020180818
1631094552refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018092020180818
1631221544refgcc -march=barcelona -O2 -fomit-frame-pointer2018092020180818
1631239356refgcc -funroll-loops -O2 -fomit-frame-pointer2018092020180818
1631251888refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018092020180818
1631401296refgcc -march=k8 -O2 -fomit-frame-pointer2018092020180818
1631856580refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018092020180818
1632028060refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018092020180818
1632136748refgcc -funroll-loops -O3 -fomit-frame-pointer2018092020180818
1632167328refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018092020180818
1632274200refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018092020180818
1632515292refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018092020180818
1632607812refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018092020180818
1633399296refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018092020180818
1633594160refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018092020180818
1633728312refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018092020180818
1634487712refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018092020180818
1634846660refgcc -m64 -O2 -fomit-frame-pointer2018092020180818
1635048056refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018092020180818
1635209496refgcc -O2 -fomit-frame-pointer2018092020180818
1635263396refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018092020180818
1635467668refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018092020180818
1635479188refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018092020180818
1635879696refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018092020180818
1635999560refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018092020180818
1636509684refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018092020180818
1637682656refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018092020180818
1637827932refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018092020180818
1638031592refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018092020180818
1638044084refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018092020180818
1638353504refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018092020180818
1638566536refgcc -march=nocona -O3 -fomit-frame-pointer2018092020180818
1638794428refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018092020180818
1640855828refgcc -march=barcelona -O -fomit-frame-pointer2018092020180818
1640936028refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2018092020180818
1641138808refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018092020180818
1641168760refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018092020180818
1641814280refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018092020180818
1642019296refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018092020180818
1642247092refgcc -march=nocona -O2 -fomit-frame-pointer2018092020180818
1642739124refgcc -funroll-loops -O -fomit-frame-pointer2018092020180818
1642810368refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018092020180818
1642996692refgcc -march=nocona -O -fomit-frame-pointer2018092020180818
1643029560refgcc -m64 -march=nocona -O -fomit-frame-pointer2018092020180818
1644462084refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018092020180818
1644788180refgcc -march=k8 -O -fomit-frame-pointer2018092020180818
1645555428refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018092020180818
1645810896refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018092020180818
1646938708refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018092020180818
1647230116refgcc -m64 -march=k8 -O -fomit-frame-pointer2018092020180818
1647538740refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018092020180818
1647621964refgcc -m64 -march=core2 -O -fomit-frame-pointer2018092020180818
1647737412refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018092020180818
1647760276refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018092020180818
1647867120refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018092020180818
1648191880refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018092020180818
1650385444refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018092020180818
1651165280refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018092020180818
1651705476refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018092020180818
1653229300refgcc -fno-schedule-insns -O -fomit-frame-pointer2018092020180818
1653369316refgcc -O -fomit-frame-pointer2018092020180818
1656589684refgcc -m64 -O -fomit-frame-pointer2018092020180818
1657424988refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018092020180818
1678246264refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018092020180818
1684601464refgcc -march=barcelona -Os -fomit-frame-pointer2018092020180818
1684933816refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018092020180818
1687248640refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018092020180818
1687280580refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018092020180818
1687307092refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018092020180818
1687459564refgcc -Os -fomit-frame-pointer2018092020180818
1687873612refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018092020180818
1688095428refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018092020180818
1688434436refgcc -m64 -Os -fomit-frame-pointer2018092020180818
1688463728refgcc -march=k8 -Os -fomit-frame-pointer2018092020180818
1688769168refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018092020180818
1691461620refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018092020180818
1692023220refgcc -march=nocona -Os -fomit-frame-pointer2018092020180818
1692295776refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018092020180818
1692647280refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018092020180818
1692884820refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018092020180818
1693494336refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018092020180818
1695930556refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018092020180818
1696514624refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018092020180818
1696571280refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018092020180818
1704864824refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018092020180818
1705260408refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018092020180818
1705570328refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018092020180818
1705611616refgcc -funroll-loops -Os -fomit-frame-pointer2018092020180818
1705649668refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018092020180818
1705754420refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018092020180818
1706091116refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018092020180818
1851444352refgcc -funroll-loops2018092020180818
1854824188refgcc2018092020180818
1878580776refcc2018092020180818

Compiler output

Implementation: crypto_sign/sphincsf256sha256/avx2
Compiler: cc
sha256avx.c: sha256avx.c: In function 'transpose':
sha256avx.c: sha256avx.c:10:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:878:1: error: inlining failed in call to always_inline '_mm256_unpackhi_epi64': target specific option mismatch
sha256avx.c: _mm256_unpackhi_epi64 (__m256i __A, __m256i __B)
sha256avx.c: ^
sha256avx.c: sha256avx.c:25:15: error: called from here
sha256avx.c: tmp1[7] = _mm256_unpackhi_epi64(tmp0[5], tmp0[7]);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:906:1: error: inlining failed in call to always_inline '_mm256_unpacklo_epi64': target specific option mismatch
sha256avx.c: _mm256_unpacklo_epi64 (__m256i __A, __m256i __B)
sha256avx.c: ^
sha256avx.c: sha256avx.c:24:15: error: called from here
sha256avx.c: tmp1[6] = _mm256_unpacklo_epi64(tmp0[5], tmp0[7]);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc avx2
gcc avx2
gcc -funroll-loops avx2

Compiler output

Implementation: crypto_sign/sphincsf256sha256/avx2
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
sha256avx.c: sha256avx.c:10:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:11:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[1] = _mm256_unpackhi_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:12:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[2] = _mm256_unpacklo_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:13:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[3] = _mm256_unpackhi_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:14:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[4] = _mm256_unpacklo_epi32(s[4], s[5]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:15:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[5] = _mm256_unpackhi_epi32(s[4], s[5]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:16:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[6] = _mm256_unpacklo_epi32(s[6], s[7]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:17:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[7] = _mm256_unpackhi_epi32(s[6], s[7]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:18:15: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments avx2
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2

Compiler output

Implementation: crypto_sign/sphincsf256sha256/avx2
Compiler: clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments
sha256avx.c: sha256avx.c:10:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:11:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[1] = _mm256_unpackhi_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:12:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[2] = _mm256_unpacklo_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:13:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[3] = _mm256_unpackhi_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:14:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[4] = _mm256_unpacklo_epi32(s[4], s[5]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:15:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[5] = _mm256_unpackhi_epi32(s[4], s[5]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:16:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[6] = _mm256_unpacklo_epi32(s[6], s[7]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:17:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: tmp0[7] = _mm256_unpackhi_epi32(s[6], s[7]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:18:15: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'avx2', but would be inlined into function 'transpose' that is compiled without support for 'avx2'
sha256avx.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx2
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx2

Compiler output

Implementation: crypto_sign/sphincsf256sha256/avx2
Compiler: gcc -O2 -fomit-frame-pointer
sha256avx.c: sha256avx.c: In function 'transpose':
sha256avx.c: sha256avx.c:10:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:33:12: error: called from here
sha256avx.c: s[7] = _mm256_permute2x128_si256(tmp1[3], tmp1[7], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:32:12: error: called from here
sha256avx.c: s[6] = _mm256_permute2x128_si256(tmp1[2], tmp1[6], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: ...

Number of similar (compiler,implementation) pairs: 84, namely:
CompilerImplementations
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 -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=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
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: crypto_sign/sphincsf256sha256/avx2
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
sha256avx.c: sha256avx.c: In function 'transpose':
sha256avx.c: sha256avx.c:10:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:33:12: error: called from here
sha256avx.c: s[7] = _mm256_permute2x128_si256(tmp1[3], tmp1[7], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:32:12: error: called from here
sha256avx.c: s[6] = _mm256_permute2x128_si256(tmp1[2], tmp1[6], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: ...
sha256avx.c: sha256avx.c: In function 'transpose':
sha256avx.c: sha256avx.c:10:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:33:12: error: called from here
sha256avx.c: s[7] = _mm256_permute2x128_si256(tmp1[3], tmp1[7], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:32:12: error: called from here
sha256avx.c: s[6] = _mm256_permute2x128_si256(tmp1[2], tmp1[6], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.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: crypto_sign/sphincsf256sha256/avx2
Compiler: gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: sha256avx.c: In function 'transpose':
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:33:12: error: called from here
sha256avx.c: s[7] = _mm256_permute2x128_si256(tmp1[3], tmp1[7], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.c: sha256avx.c:32:12: error: called from here
sha256avx.c: s[6] = _mm256_permute2x128_si256(tmp1[2], tmp1[6], 0x31);
sha256avx.c: ^
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:4:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^
sha256avx.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