Implementation notes: amd64, scw1b63b1, crypto_kem/kyber512

Computer: scw1b63b1
Architecture: amd64
CPU ID: GenuineIntel-000506f1-0f8bfbff
SUPERCOP version: 20191017
Operation: crypto_kem
Primitive: kyber512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
49906613705 512 030653 1320 1576refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122320191017
49920013705 512 030653 1320 1576refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122320191017
49995814745 512 032517 1320 1576refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122320191017
50989058791 512 078124 1336 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122320191017
51371215660 512 033517 1320 1576refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122320191017
55687010356 512 026391 1312 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122320191017
57561411466 512 028836 1336 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122320191017
59127210835 512 027884 1336 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122320191017
65520810122 512 026084 1328 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122320191017

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
cbd.c: cbd.c:20:26: error: always_inline function '_mm256_set1_epi32' requires target feature 'xsave', but would be inlined into function 'cbd' that is compiled without support for 'xsave'
cbd.c: const __m256i mask55 = _mm256_set1_epi32(0x55555555);
cbd.c: ^
cbd.c: cbd.c:21:26: error: always_inline function '_mm256_set1_epi32' requires target feature 'xsave', but would be inlined into function 'cbd' that is compiled without support for 'xsave'
cbd.c: const __m256i mask33 = _mm256_set1_epi32(0x33333333);
cbd.c: ^
cbd.c: cbd.c:22:26: error: always_inline function '_mm256_set1_epi32' requires target feature 'xsave', but would be inlined into function 'cbd' that is compiled without support for 'xsave'
cbd.c: const __m256i mask03 = _mm256_set1_epi32(0x03030303);
cbd.c: ^
cbd.c: cbd.c:26:12: error: always_inline function '_mm256_loadu_si256' requires target feature 'xsave', but would be inlined into function 'cbd' that is compiled without support for 'xsave'
cbd.c: ...
cbd.c: vec3 = _mm256_and_si256(mask03, vec3);
cbd.c: ^
cbd.c: cbd.c:44:12: error: always_inline function '_mm256_sub_epi8' requires target feature 'xsave', but would be inlined into function 'cbd' that is compiled without support for 'xsave'
cbd.c: vec1 = _mm256_sub_epi8(vec0, vec1);
cbd.c: ^
cbd.c: cbd.c:45:12: error: always_inline function '_mm256_sub_epi8' requires target feature 'xsave', but would be inlined into function 'cbd' that is compiled without support for 'xsave'
cbd.c: vec3 = _mm256_sub_epi8(vec2, vec3);
cbd.c: ^
cbd.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
cbd.c: 20 errors generated.

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
cbd.c: cbd.c:20:26: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'cbd' that is compiled without support for 'sse4.2'
cbd.c: const __m256i mask55 = _mm256_set1_epi32(0x55555555);
cbd.c: ^
cbd.c: cbd.c:21:26: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'cbd' that is compiled without support for 'sse4.2'
cbd.c: const __m256i mask33 = _mm256_set1_epi32(0x33333333);
cbd.c: ^
cbd.c: cbd.c:22:26: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'cbd' that is compiled without support for 'sse4.2'
cbd.c: const __m256i mask03 = _mm256_set1_epi32(0x03030303);
cbd.c: ^
cbd.c: cbd.c:26:12: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'cbd' that is compiled without support for 'sse4.2'
cbd.c: ...
cbd.c: vec3 = _mm256_and_si256(mask03, vec3);
cbd.c: ^
cbd.c: cbd.c:44:12: error: always_inline function '_mm256_sub_epi8' requires target feature 'sse4.2', but would be inlined into function 'cbd' that is compiled without support for 'sse4.2'
cbd.c: vec1 = _mm256_sub_epi8(vec0, vec1);
cbd.c: ^
cbd.c: cbd.c:45:12: error: always_inline function '_mm256_sub_epi8' requires target feature 'sse4.2', but would be inlined into function 'cbd' that is compiled without support for 'sse4.2'
cbd.c: vec3 = _mm256_sub_epi8(vec2, vec3);
cbd.c: ^
cbd.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
cbd.c: 20 errors generated.

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
cbd.c: cbd.c: In function ‘cbd’:
cbd.c: cbd.c:20:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
cbd.c: const __m256i mask55 = _mm256_set1_epi32(0x55555555);
cbd.c: ^~~~~~
cbd.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
cbd.c: from cbd.c:2:
cbd.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:1293:1: error: inlining failed in call to always_inline ‘_mm256_set1_epi32’: target specific option mismatch
cbd.c: _mm256_set1_epi32 (int __A)
cbd.c: ^~~~~~~~~~~~~~~~~
cbd.c: cbd.c:22:17: note: called from here
cbd.c: ...
cbd.c: vec1 = _mm256_srli_epi32(vec0, 1);
cbd.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cbd.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
cbd.c: from cbd.c:2:
cbd.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:894:1: error: inlining failed in call to always_inline ‘_mm256_loadu_si256’: target specific option mismatch
cbd.c: _mm256_loadu_si256 (__m256i const *__P)
cbd.c: ^~~~~~~~~~~~~~~~~~
cbd.c: cbd.c:26:10: note: called from here
cbd.c: vec0 = _mm256_loadu_si256((__m256i *)&buf[32*i]);
cbd.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: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
cbd.o cbd T
fips202.o KeccakF1600_StatePermute T
fips202.o sha3_256 T
fips202.o sha3_512 T
fips202.o shake128_absorb T
fips202.o shake128_squeezeblocks T
fips202.o shake256 T
indcpa.o gen_matrix T
indcpa.o indcpa_dec T
indcpa.o indcpa_enc T
indcpa.o indcpa_keypair T
ntt.o basemul T
ntt.o invntt T
ntt.o ntt T
ntt.o zetas D
ntt.o zetas_inv D
poly.o poly_add T
poly.o poly_basemul T
poly.o poly_compress T
poly.o poly_csubq T
poly.o poly_decompress T
poly.o poly_frombytes T
poly.o poly_frommont T
poly.o poly_frommsg T
poly.o poly_getnoise T
poly.o poly_invntt T
poly.o poly_ntt T
poly.o poly_reduce T
poly.o poly_sub T
poly.o poly_tobytes T
poly.o poly_tomsg T
polyvec.o polyvec_add T
polyvec.o polyvec_compress T
polyvec.o polyvec_csubq T
polyvec.o polyvec_decompress T
polyvec.o polyvec_frombytes T
polyvec.o polyvec_invntt T
polyvec.o polyvec_ntt T
polyvec.o polyvec_pointwise_acc T
polyvec.o polyvec_reduce T
polyvec.o polyvec_tobytes T
reduce.o barrett_reduce T
reduce.o csubq T
reduce.o montgomery_reduce T
symmetric-fips202.o kyber_shake128_absorb T
symmetric-fips202.o kyber_shake128_squeezeblocks T
symmetric-fips202.o shake256_prf T
verify.o cmov T
verify.o verify T

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
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
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref