Implementation notes: amd64, waldorf, crypto_aead/norx6461v1

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_aead
Primitive: norx6461v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
56848xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
62344xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
66248xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
71188xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
80764xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
101288refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
105748refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
106048refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
111892refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
112172refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_aead/norx6461v1/ymm
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
norx.c: norx.c:302:9: warning: implicit declaration of function '_mm256_storeu_si256' is invalid in C99 [-Wimplicit-function-declaration]
norx.c: STOREU(out + 0, LOADU(in + 0));
norx.c: ^
norx.c: norx.c:48:24: note: expanded from macro 'STOREU'
norx.c: #define STOREU(out, x) _mm256_storeu_si256((__m256i*)(out), (x))
norx.c: ^
norx.c: norx.c:302:9: error: use of undeclared identifier '__m256i'
norx.c: norx.c:48:45: note: expanded from macro 'STOREU'
norx.c: #define STOREU(out, x) _mm256_storeu_si256((__m256i*)(out), (x))
norx.c: ^
norx.c: norx.c:302:9: error: expected expression
norx.c: norx.c:48:53: note: expanded from macro 'STOREU'
norx.c: #define STOREU(out, x) _mm256_storeu_si256((__m256i*)(out), (x))
norx.c: ^
norx.c: norx.c:302:26: warning: implicit declaration of function '_mm256_loadu_si256' is invalid in C99 [-Wimplicit-function-declaration]
norx.c: STOREU(out + 0, LOADU(in + 0));
norx.c: ^
norx.c: norx.c:47:19: note: expanded from macro 'LOADU'
norx.c: #define LOADU(in) _mm256_loadu_si256((__m256i*)(in))
norx.c: ^
norx.c: norx.c:48:62: note: expanded from macro 'STOREU'
norx.c: #define STOREU(out, x) _mm256_storeu_si256((__m256i*)(out), (x))
norx.c: ^
norx.c: norx.c:302:26: error: use of undeclared identifier '__m256i'
norx.c: norx.c:47:39: note: expanded from macro 'LOADU'
norx.c: ...

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

Compiler output

Implementation: crypto_aead/norx6461v1/ymm
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
norx.c: norx.c: In function 'crypto_aead_norx6461v1_ymm_encrypt':
norx.c: norx.c:350:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
norx.c: const __m256i K = LOADU(k + 0);
norx.c: ^
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:41:0,
norx.c: from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:46,
norx.c: from norx.c:26:
norx.c: norx.c: In function 'block_copy':
norx.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avxintrin.h:890:1: error: inlining failed in call to always_inline '_mm256_loadu_si256': target specific option mismatch
norx.c: _mm256_loadu_si256 (__m256i const *__P)
norx.c: ^
norx.c: norx.c:48:24: error: called from here
norx.c: #define STOREU(out, x) _mm256_storeu_si256((__m256i*)(out), (x))
norx.c: ^
norx.c: norx.c:302:9: note: in expansion of macro 'STOREU'
norx.c: STOREU(out + 0, LOADU(in + 0));
norx.c: ^
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:41:0,
norx.c: from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:46,
norx.c: from norx.c:26:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avxintrin.h:896:1: error: inlining failed in call to always_inline '_mm256_storeu_si256': target specific option mismatch
norx.c: _mm256_storeu_si256 (__m256i *__P, __m256i __A)
norx.c: ^
norx.c: norx.c:48:24: error: called from here
norx.c: #define STOREU(out, x) _mm256_storeu_si256((__m256i*)(out), (x))
norx.c: ...

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