Implementation notes: amd64, hydra1, crypto_aead/norx6441v2

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: norx6441v2
TimeImplementationCompilerBenchmark dateSUPERCOP version
33627xmmgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
33627xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
33725xmmgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
33725xmmgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
33764xmmgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
33765xmmgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
34953xmmgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
34982xmmgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
35192xmmgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
35195xmmgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
35213xmmgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
35216xmmgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
35250xmmgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
35253xmmgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
35259xmmgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
35907xmmgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
35912xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
36490xmmclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
36493xmmclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
36493xmmclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
36501xmmclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
36525xmmgcc -march=nocona -O -fomit-frame-pointer2016102020161009
36530xmmgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
36648xmmgcc -O -fomit-frame-pointer2016102020161009
36682xmmgcc -m64 -O -fomit-frame-pointer2016102020161009
36685xmmgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
36949xmmgcc -march=k8 -O -fomit-frame-pointer2016102020161009
36955xmmgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
36962xmmgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
36963xmmgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
36971xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
36984xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
38044xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
38055xmmclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
40503refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
40504refgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
40516refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
40531xmmgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
40536xmmgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
40627xmmgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
40629xmmgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
40659xmmgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
40659xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
40659xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
40661xmmgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
40864refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
40877refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
40887refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
40909refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
40926refgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
40961refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
41013refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
41146refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
41157refgcc -m64 -O3 -fomit-frame-pointer2016102020161009
41189refgcc -O3 -fomit-frame-pointer2016102020161009
41517refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
41549refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
41757refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
41759refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
41776refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
41797refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
41861refgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
41941refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
41979refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
42037refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
42053refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
42154refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
42191refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
42208refgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
42222refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
42234refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
42245refgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
42368refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
42382refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
42387refgcc -m64 -O2 -fomit-frame-pointer2016102020161009
42397refgcc -O2 -fomit-frame-pointer2016102020161009
42404refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
42429refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
42443refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
42485refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
42515refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
42523refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
42535refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
42584refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
42600refgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
42619refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
42631refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
42669refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
42691refgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
42696xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
42704refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
42714xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
42733xmmgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
42741xmmgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
43072refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102020161009
43101refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102020161009
43133refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102020161009
43139refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102020161009
43291refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
43317refgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
43637refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
43661refgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
43768refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
43797refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
43805refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
43837refgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
43906refgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
43925refgcc -m64 -O -fomit-frame-pointer2016102020161009
43956refgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
43957refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102020161009
44029refgcc -O -fomit-frame-pointer2016102020161009
44061refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102020161009
44069refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102020161009
44081xmmgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
44082refgcc -m64 -march=core2 -O -fomit-frame-pointer2016102020161009
44090xmmgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
44109xmmgcc -O3 -fomit-frame-pointer2016102020161009
44109xmmgcc -m64 -O3 -fomit-frame-pointer2016102020161009
44112xmmgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
44120refgcc -march=k8 -O -fomit-frame-pointer2016102020161009
44274xmmgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
44275xmmgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
44275xmmgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
44275xmmgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
44277xmmgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
44472xmmgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
44477xmmgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
44485refgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
44488xmmgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
44490xmmgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
44490xmmgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
44534refgcc -march=nocona -O -fomit-frame-pointer2016102020161009
44566refgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
44677refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
44730refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
45234refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
46033xmmgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
46033xmmgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
46059xmmgcc -O2 -fomit-frame-pointer2016102020161009
46065xmmgcc -m64 -O2 -fomit-frame-pointer2016102020161009
46078xmmgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
46325xmmgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
46346xmmgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
46373xmmgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
46376xmmgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
47789refgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
47816refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
47829refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
47840refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
47842refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
47846refgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
47908refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
47922refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
48032refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102020161009
48053refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102020161009
48069refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102020161009
48077refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102020161009
48085refgcc -Os -fomit-frame-pointer2016102020161009
48117refgcc -m64 -Os -fomit-frame-pointer2016102020161009
48120refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
48392refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
48414refgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
51597refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
51640refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
51646refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
51713refclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
53762xmmgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
53772xmmgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
53998xmmgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
54002xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
54005xmmgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
54008xmmgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
57058xmmgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
57059xmmgcc -Os -fomit-frame-pointer2016102020161009
57059xmmgcc -m64 -Os -fomit-frame-pointer2016102020161009
57059xmmgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
57062xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
57501xmmgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
57520xmmgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
57523xmmgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
57530xmmgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
57544xmmgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
58557refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
58570refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
242525refgcc -funroll-loops2016102020161009
242577refcc2016102020161009
242585refgcc2016102020161009
381266xmmcc2016102020161009
381594xmmgcc2016102020161009
382328xmmgcc -funroll-loops2016102020161009

Test failure

Implementation: crypto_aead/norx6441v2/xmm
Compiler: gcc -m64 -march=core2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 14, namely:
CompilerImplementations
gcc -m64 -march=core2 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref xmm
gcc -m64 -march=core2 -O -fomit-frame-pointer xmm
gcc -m64 -march=core2 -Os -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer xmm
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=corei7 -O -fomit-frame-pointer xmm
gcc -m64 -march=corei7 -Os -fomit-frame-pointer xmm

Compiler output

Implementation: crypto_aead/norx6441v2/ymm
Compiler: cc
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:43:0,
norx.c: from norx.c:25:
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:290:28: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
norx.c: _mm256_castsi128_si256(LOADU128(NONCE)), 0x0F); \
norx.c: ^
norx.c: norx.c:388:5: note: in expansion of macro 'INITIALISE'
norx.c: INITIALISE(A, B, C, D, nonce, key);
norx.c: ^
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
norx.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
norx.c: ^
norx.c: norx.c:294:7: error: called from here
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
norx.c: ^
norx.c: norx.c:388: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/5/include/immintrin.h:41:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1270: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:72:19: error: called from here
norx.c: #define XOR(A, B) _mm256_xor_si256((A), (B))
norx.c: ...

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

Compiler output

Implementation: crypto_aead/norx6441v2/ymm
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
norx.c: norx.c:388:5: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: INITIALISE(A, B, C, D, nonce, key);
norx.c: ^
norx.c: norx.c:289: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:388:5: error: always_inline function '_mm256_castsi128_si256' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:290:28: note: expanded from macro 'INITIALISE'
norx.c: _mm256_castsi128_si256(LOADU128(NONCE)), 0x0F); \
norx.c: ^
norx.c: norx.c:388:5: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:291:9: note: expanded from macro 'INITIALISE'
norx.c: B = LOADU(KEY); \
norx.c: ^
norx.c: norx.c:53:19: note: expanded from macro 'LOADU'
norx.c: #define LOADU(in) _mm256_loadu_si256((__m256i*)(in))
norx.c: ^
norx.c: norx.c:388:5: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:292:9: note: expanded from macro 'INITIALISE'
norx.c: C = _mm256_set_epi64x(U11, U10, U9, U8); \
norx.c: ^
norx.c: norx.c:388:5: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:293:9: note: expanded from macro 'INITIALISE'
norx.c: D = _mm256_set_epi64x(U15, U14, U13, U12); \
norx.c: ^
norx.c: ...

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

Compiler output

Implementation: crypto_aead/norx6441v2/ymm
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
norx.c: norx.c:388:5: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'xsave'
norx.c: INITIALISE(A, B, C, D, nonce, key);
norx.c: ^
norx.c: norx.c:289: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:388:5: error: always_inline function '_mm256_castsi128_si256' requires target feature 'xsave', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'xsave'
norx.c: norx.c:290:28: note: expanded from macro 'INITIALISE'
norx.c: _mm256_castsi128_si256(LOADU128(NONCE)), 0x0F); \
norx.c: ^
norx.c: norx.c:388:5: error: always_inline function '_mm256_loadu_si256' requires target feature 'xsave', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'xsave'
norx.c: norx.c:291:9: note: expanded from macro 'INITIALISE'
norx.c: B = LOADU(KEY); \
norx.c: ^
norx.c: norx.c:53:19: note: expanded from macro 'LOADU'
norx.c: #define LOADU(in) _mm256_loadu_si256((__m256i*)(in))
norx.c: ^
norx.c: norx.c:388:5: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'xsave'
norx.c: norx.c:292:9: note: expanded from macro 'INITIALISE'
norx.c: C = _mm256_set_epi64x(U11, U10, U9, U8); \
norx.c: ^
norx.c: norx.c:388:5: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'xsave'
norx.c: norx.c:293:9: note: expanded from macro 'INITIALISE'
norx.c: D = _mm256_set_epi64x(U15, U14, U13, U12); \
norx.c: ^
norx.c: ...

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

Compiler output

Implementation: crypto_aead/norx6441v2/ymm
Compiler: gcc -O2 -fomit-frame-pointer
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:289: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:388: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/5/include/immintrin.h:43:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
norx.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
norx.c: ^
norx.c: norx.c:294:7: error: called from here
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
norx.c: ^
norx.c: norx.c:388: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/5/include/immintrin.h:41:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1270: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:72:19: error: called from here
norx.c: #define XOR(A, B) _mm256_xor_si256((A), (B))
norx.c: ...

Number of similar (compiler,implementation) pairs: 89, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer ymm
gcc -O3 -fomit-frame-pointer ymm
gcc -O -fomit-frame-pointer ymm
gcc -Os -fomit-frame-pointer ymm
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ymm
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ymm
gcc -fno-schedule-insns -O -fomit-frame-pointer ymm
gcc -fno-schedule-insns -Os -fomit-frame-pointer ymm
gcc -funroll-loops -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -O -fomit-frame-pointer ymm
gcc -funroll-loops -Os -fomit-frame-pointer ymm
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ymm
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -O -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ymm
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ymm
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ymm
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ymm
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ymm
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ymm
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ymm
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ymm
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ymm
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ymm
gcc -m64 -O2 -fomit-frame-pointer ymm
gcc -m64 -O3 -fomit-frame-pointer ymm
gcc -m64 -O -fomit-frame-pointer ymm
gcc -m64 -Os -fomit-frame-pointer ymm
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ymm
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ymm
gcc -m64 -march=core2 -O -fomit-frame-pointer ymm
gcc -m64 -march=core2 -Os -fomit-frame-pointer ymm
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ymm
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ymm
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ymm
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ymm
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ymm
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ymm
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ymm
gcc -m64 -march=corei7 -O -fomit-frame-pointer ymm
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ymm
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ymm
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ymm
gcc -m64 -march=k8 -O -fomit-frame-pointer ymm
gcc -m64 -march=k8 -Os -fomit-frame-pointer ymm
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ymm
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ymm
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ymm
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ymm
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ymm
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ymm
gcc -m64 -march=nocona -O -fomit-frame-pointer ymm
gcc -m64 -march=nocona -Os -fomit-frame-pointer ymm
gcc -march=barcelona -O2 -fomit-frame-pointer ymm
gcc -march=barcelona -O3 -fomit-frame-pointer ymm
gcc -march=barcelona -O -fomit-frame-pointer ymm
gcc -march=barcelona -Os -fomit-frame-pointer ymm
gcc -march=k8 -O2 -fomit-frame-pointer ymm
gcc -march=k8 -O3 -fomit-frame-pointer ymm
gcc -march=k8 -O -fomit-frame-pointer ymm
gcc -march=k8 -Os -fomit-frame-pointer ymm
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
gcc -march=nocona -O2 -fomit-frame-pointer ymm
gcc -march=nocona -O3 -fomit-frame-pointer ymm
gcc -march=nocona -O -fomit-frame-pointer ymm
gcc -march=nocona -Os -fomit-frame-pointer ymm

Compiler output

Implementation: crypto_aead/norx6441v2/ymm
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:289: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:388: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/5/include/immintrin.h:43:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
norx.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
norx.c: ^
norx.c: norx.c:294:7: error: called from here
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
norx.c: ^
norx.c: norx.c:388: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/5/include/immintrin.h:41:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1270: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:72:19: error: called from here
norx.c: #define XOR(A, B) _mm256_xor_si256((A), (B))
norx.c: ...
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:289: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:388: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/5/include/immintrin.h:43:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
norx.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
norx.c: ^
norx.c: norx.c:294:7: error: called from here
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
norx.c: ^
norx.c: norx.c:388: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/5/include/immintrin.h:41:0,
norx.c: from norx.c:25:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1270: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:72:19: error: called from here
norx.c: #define XOR(A, B) _mm256_xor_si256((A), (B))
norx.c: ...

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