Implementation notes: amd64, hydra1, crypto_aead/norx6461v2

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: norx6461v2
TimeImplementationCompilerBenchmark dateSUPERCOP version
50058xmmgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
50058xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
50080xmmgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
50082xmmgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
50259xmmgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
50275xmmgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
51498xmmgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
51501xmmgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
51509xmmgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
51522xmmgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
51531xmmgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
51536xmmgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
51552xmmgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
52051xmmgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
52071xmmgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
52336xmmgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
52344xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
53330xmmgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
53330xmmgcc -march=k8 -O -fomit-frame-pointer2016102020161009
53352xmmgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
53358xmmgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
53358xmmgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
53364xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
53366xmmgcc -O -fomit-frame-pointer2016102020161009
53371xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
53389xmmgcc -m64 -O -fomit-frame-pointer2016102020161009
53486xmmgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
53496xmmgcc -march=nocona -O -fomit-frame-pointer2016102020161009
54392xmmclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
54392xmmclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
54397xmmclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
54402xmmclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
56661xmmclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
56677xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
58032refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
58038refgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
58048refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
58698refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
58719refgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
58722refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
58744refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
58773refgcc -O3 -fomit-frame-pointer2016102020161009
58784refgcc -m64 -O3 -fomit-frame-pointer2016102020161009
59276refgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
59306refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
59306refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
59308refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
59325refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
59349refgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
59790refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
59815refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
59874refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
59909refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
59915refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
59976refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
60069refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
60101refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
60518refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
60576refgcc -m64 -O2 -fomit-frame-pointer2016102020161009
60630refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102020161009
60642xmmgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
60643xmmgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
60653refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102020161009
60666refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102020161009
60667xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
60670xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
60674xmmgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
60675xmmgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
60688refgcc -O2 -fomit-frame-pointer2016102020161009
60702refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102020161009
61200refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
61216refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
61224refgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
61229refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
61250refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
61317refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
61364refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
61369refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
61422xmmgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
61422xmmgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
61494refgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
61496refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
61528refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
61538refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
61689refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
61739refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
62054refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
62064refgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
62077refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
62092refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
62112refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
62117refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
62160refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
62176refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
62176refgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
62560xmmgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
62560xmmgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
62560xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
62565xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
63734refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
63765refgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
64453refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102020161009
64456refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102020161009
64563refgcc -m64 -march=core2 -O -fomit-frame-pointer2016102020161009
64568refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102020161009
64829refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
64829refgcc -m64 -O -fomit-frame-pointer2016102020161009
64830refgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
64843refgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
64845refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
64848refgcc -march=nocona -O -fomit-frame-pointer2016102020161009
64856refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
64861refgcc -O -fomit-frame-pointer2016102020161009
64867refgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
64870refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
64878refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
64888refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
64919refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
64920refgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
64923refgcc -march=k8 -O -fomit-frame-pointer2016102020161009
64955refgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
65622xmmgcc -m64 -O3 -fomit-frame-pointer2016102020161009
65623xmmgcc -O3 -fomit-frame-pointer2016102020161009
65624xmmgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
65648xmmgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
65648xmmgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
66181xmmgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
66181xmmgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
66181xmmgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
66192xmmgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
66194xmmgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
66426xmmgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
66426xmmgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
66429xmmgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
66441xmmgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
66443xmmgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
66816xmmgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
66829xmmgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
66832xmmgcc -O2 -fomit-frame-pointer2016102020161009
66837xmmgcc -m64 -O2 -fomit-frame-pointer2016102020161009
66842xmmgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
67008refgcc -Os -fomit-frame-pointer2016102020161009
67010refgcc -m64 -Os -fomit-frame-pointer2016102020161009
67072refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
67316refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102020161009
67328refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102020161009
67331refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102020161009
67333refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102020161009
67828refgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
67835refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
68018refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
68040refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
68072refgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
68186xmmgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
68188xmmgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
68221xmmgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
68222xmmgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
68342refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
68440refgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
68469refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
68482refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
68597refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
76673refclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
76711refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
76726refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
76880refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
79402xmmgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
79435xmmgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
79709xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
79712xmmgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
79731xmmgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
79762xmmgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
84317xmmgcc -Os -fomit-frame-pointer2016102020161009
84320xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
84322xmmgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
84326xmmgcc -m64 -Os -fomit-frame-pointer2016102020161009
84334xmmgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
85024xmmgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
85025xmmgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
85026xmmgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
85038xmmgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
85058xmmgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
86897refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
86957refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
345111refgcc -funroll-loops2016102020161009
345314refcc2016102020161009
345472refgcc2016102020161009
560090xmmgcc2016102020161009
560139xmmcc2016102020161009
560473xmmgcc -funroll-loops2016102020161009

Test failure

Implementation: crypto_aead/norx6461v2/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/norx6461v2/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/norx6461v2/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/norx6461v2/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/norx6461v2/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/norx6461v2/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