Implementation notes: amd64, waldorf, crypto_aead/norx6441v2

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_aead
Primitive: norx6441v2
TimeImplementationCompilerBenchmark dateSUPERCOP version
37040xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
38288xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
38972xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
39900xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
47192xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
61064refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
64460refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
67396refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
68052refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
69704refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_aead/norx6441v2/ymm
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
norx.c: norx.c:384:5: error: use of undeclared identifier '__m256i'
norx.c: __m256i A, B, C, D;
norx.c: ^
norx.c: norx.c:387:16: error: use of undeclared identifier 'A'
norx.c: INITIALISE(A, B, C, D, nonce, key);
norx.c: ^
norx.c: norx.c:288:5: note: expanded from macro 'INITIALISE'
norx.c: A = _mm256_blend_epi32(_mm256_set_epi64x(U3, U2, 0, 0), \
norx.c: ^
norx.c: norx.c:387:5: warning: implicit declaration of function '_mm256_blend_epi32' is invalid in C99 [-Wimplicit-function-declaration]
norx.c: INITIALISE(A, B, C, D, nonce, key);
norx.c: ^
norx.c: norx.c:288:9: note: expanded from macro 'INITIALISE'
norx.c: A = _mm256_blend_epi32(_mm256_set_epi64x(U3, U2, 0, 0), \
norx.c: ^
norx.c: norx.c:387:5: warning: implicit declaration of function '_mm256_set_epi64x' is invalid in C99 [-Wimplicit-function-declaration]
norx.c: norx.c:288:28: note: expanded from macro 'INITIALISE'
norx.c: A = _mm256_blend_epi32(_mm256_set_epi64x(U3, U2, 0, 0), \
norx.c: ^
norx.c: norx.c:387:5: warning: implicit declaration of function '_mm256_castsi128_si256' is invalid in C99 [-Wimplicit-function-declaration]
norx.c: norx.c:289:28: note: expanded from macro 'INITIALISE'
norx.c: _mm256_castsi128_si256(LOADU128(NONCE)), 0x0F); \
norx.c: ^
norx.c: norx.c:387:19: error: use of undeclared identifier 'B'
norx.c: INITIALISE(A, B, C, D, nonce, key);
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/norx6441v2/ymm
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:288:7: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
norx.c: A = _mm256_blend_epi32(_mm256_set_epi64x(U3, U2, 0, 0), \
norx.c: ^
norx.c: norx.c:387:5: note: in expansion of macro 'INITIALISE'
norx.c: INITIALISE(A, B, C, D, nonce, key);
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 norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avxintrin.h:1453:1: error: inlining failed in call to always_inline '_mm256_castsi128_si256': target specific option mismatch
norx.c: _mm256_castsi128_si256 (__m128i __A)
norx.c: ^
norx.c: norx.c:288:9: error: called from here
norx.c: A = _mm256_blend_epi32(_mm256_set_epi64x(U3, U2, 0, 0), \
norx.c: ^
norx.c: norx.c:387:5: note: in expansion of macro 'INITIALISE'
norx.c: INITIALISE(A, B, C, D, nonce, key);
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 norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avxintrin.h:1266:1: error: inlining failed in call to always_inline '_mm256_set_epi64x': target specific option mismatch
norx.c: _mm256_set_epi64x (long long __A, long long __B, long long __C,
norx.c: ^
norx.c: norx.c:288:9: error: called from here
norx.c: A = _mm256_blend_epi32(_mm256_set_epi64x(U3, U2, 0, 0), \
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