Implementation notes: amd64, hydra1, crypto_aead/norx6461v3

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: norx6461v3
TimeImplementationCompilerBenchmark dateSUPERCOP version
51042xmmgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
51063xmmgcc -march=nocona -O3 -fomit-frame-pointer2016122720161220
51195xmmgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
51195xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016122720161220
51202xmmgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016122720161220
51206xmmgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
51635xmmgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
51642xmmgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
51664xmmgcc -funroll-loops -m64 -O -fomit-frame-pointer2016122720161220
51670xmmgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016122720161220
51741xmmgcc -funroll-loops -O -fomit-frame-pointer2016122720161220
51765xmmgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
51787xmmgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016122720161220
52434xmmgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
52442xmmgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016122720161220
53128xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
53163xmmgcc -march=nocona -O2 -fomit-frame-pointer2016122720161220
53496xmmgcc -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
53498xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016122720161220
53504xmmgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016122720161220
53507xmmgcc -march=barcelona -O -fomit-frame-pointer2016122720161220
53509xmmgcc -O -fomit-frame-pointer2016122720161220
53529xmmgcc -m64 -O -fomit-frame-pointer2016122720161220
53531xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
53598xmmgcc -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
53629xmmgcc -march=nocona -O -fomit-frame-pointer2016122720161220
53675xmmgcc -march=k8 -O -fomit-frame-pointer2016122720161220
53677xmmgcc -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
54406xmmclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
54416xmmclang -O3 -fomit-frame-pointer -Qunused-arguments2016122720161220
54430xmmclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
54443xmmclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
56704xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
56707xmmclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016122720161220
57872refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016122720161220
57898refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
57926refgcc -funroll-loops -O3 -fomit-frame-pointer2016122720161220
58629refgcc -O3 -fomit-frame-pointer2016122720161220
58637refgcc -m64 -O3 -fomit-frame-pointer2016122720161220
58642refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016122720161220
58650refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
58669refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
58694refgcc -funroll-loops -O2 -fomit-frame-pointer2016122720161220
59176refgcc -march=k8 -O3 -fomit-frame-pointer2016122720161220
59231refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
59232refgcc -march=barcelona -O3 -fomit-frame-pointer2016122720161220
59234refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
59234refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016122720161220
59258refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016122720161220
59872refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
59893refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016122720161220
59914refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
59917refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016122720161220
60118refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
60211refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016122720161220
60211refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016122720161220
60240refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
60520refgcc -m64 -O2 -fomit-frame-pointer2016122720161220
60645refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
60678refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016122720161220
60679refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016122720161220
60693refgcc -O2 -fomit-frame-pointer2016122720161220
60694refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
60731refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016122720161220
60739refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016122720161220
60821refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016122720161220
61214refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
61216refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
61221xmmgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016122720161220
61221refgcc -march=k8 -O2 -fomit-frame-pointer2016122720161220
61224xmmgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
61226refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016122720161220
61262xmmgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016122720161220
61263xmmgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
61269refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016122720161220
61317refgcc -funroll-loops -Os -fomit-frame-pointer2016122720161220
61344refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
61373refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
61378refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016122720161220
61493refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
61501refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016122720161220
61581refgcc -march=barcelona -O2 -fomit-frame-pointer2016122720161220
61584refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
61606refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016122720161220
61608refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016122720161220
61614refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
61648refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016122720161220
61840refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
61853xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016122720161220
61867xmmgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
61880xmmgcc -march=barcelona -O3 -fomit-frame-pointer2016122720161220
61885refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016122720161220
61909xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016122720161220
61944refgcc -march=nocona -O3 -fomit-frame-pointer2016122720161220
62133refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
62539xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016122720161220
62549xmmgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
62556xmmgcc -march=barcelona -O2 -fomit-frame-pointer2016122720161220
62558xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016122720161220
63744refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
63758refgcc -march=nocona -O2 -fomit-frame-pointer2016122720161220
64475refgcc -m64 -march=core2 -O -fomit-frame-pointer2016122720161220
64515refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
64525refgcc -funroll-loops -O -fomit-frame-pointer2016122720161220
64525refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
64526refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016122720161220
64549refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016122720161220
64552refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016122720161220
64557refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016122720161220
64578refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016122720161220
64677refgcc -march=nocona -O -fomit-frame-pointer2016122720161220
64701refgcc -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
64808refgcc -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
64821refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
64822refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016122720161220
64856refgcc -march=barcelona -O -fomit-frame-pointer2016122720161220
64888refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016122720161220
64902refgcc -march=k8 -O -fomit-frame-pointer2016122720161220
64917refgcc -O -fomit-frame-pointer2016122720161220
64928refgcc -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
64949refgcc -m64 -O -fomit-frame-pointer2016122720161220
66101xmmgcc -O2 -fomit-frame-pointer2016122720161220
66104xmmgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
66139xmmgcc -march=k8 -O2 -fomit-frame-pointer2016122720161220
66152xmmgcc -m64 -O2 -fomit-frame-pointer2016122720161220
66177xmmgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
66190xmmgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
66190xmmgcc -march=k8 -O3 -fomit-frame-pointer2016122720161220
66272xmmgcc -m64 -O3 -fomit-frame-pointer2016122720161220
66274xmmgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
66275xmmgcc -O3 -fomit-frame-pointer2016122720161220
66568xmmgcc -funroll-loops -O2 -fomit-frame-pointer2016122720161220
66568xmmgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
66571xmmgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
66571xmmgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016122720161220
66586xmmgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016122720161220
66640xmmgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016122720161220
66664xmmgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
66686xmmgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
66696xmmgcc -funroll-loops -O3 -fomit-frame-pointer2016122720161220
66700xmmgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016122720161220
66744refgcc -Os -fomit-frame-pointer2016122720161220
66744refgcc -m64 -Os -fomit-frame-pointer2016122720161220
66748refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
67080refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016122720161220
67088refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016122720161220
67093refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016122720161220
67099refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016122720161220
67528refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016122720161220
67532refgcc -march=barcelona -Os -fomit-frame-pointer2016122720161220
67621xmmgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
67627xmmgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016122720161220
67691refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
67691refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016122720161220
67901xmmgcc -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
67902xmmgcc -march=nocona -Os -fomit-frame-pointer2016122720161220
68136refgcc -march=k8 -Os -fomit-frame-pointer2016122720161220
68198refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
69482refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016122720161220
69550refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
70149refgcc -march=nocona -Os -fomit-frame-pointer2016122720161220
70168refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
76596refclang -O3 -fomit-frame-pointer -Qunused-arguments2016122720161220
76749refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
76821refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
76853refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
77901xmmgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
77933xmmgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016122720161220
78670xmmgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
78670xmmgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016122720161220
78672xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016122720161220
78693xmmgcc -march=barcelona -Os -fomit-frame-pointer2016122720161220
83790xmmgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
83792xmmgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016122720161220
83794xmmgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016122720161220
83795xmmgcc -funroll-loops -Os -fomit-frame-pointer2016122720161220
83797xmmgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
83848xmmgcc -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
83854xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
83857xmmgcc -m64 -Os -fomit-frame-pointer2016122720161220
83877xmmgcc -Os -fomit-frame-pointer2016122720161220
83882xmmgcc -march=k8 -Os -fomit-frame-pointer2016122720161220
87062refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
87142refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016122720161220
344268refcc2016122720161220
344310refgcc2016122720161220
344461refgcc -funroll-loops2016122720161220
567224xmmcc2016122720161220
567513xmmgcc2016122720161220
567970xmmgcc -funroll-loops2016122720161220

Test failure

Implementation: crypto_aead/norx6461v3/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/norx6461v3/ymm
Compiler: cc
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:391:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
norx.c: const __m256i K = LOADU(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:297: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:395:5: note: in expansion of macro 'INITIALISE'
norx.c: INITIALISE(A, B, C, D, nonce, K);
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:297:9: note: in expansion of macro 'XOR'
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
norx.c: ...

Number of similar (compiler,implementation) pairs: 92, namely:
CompilerImplementations
cc ymm
gcc ymm
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 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/norx6461v3/neon
Compiler: cc
norx.c: norx.c:18:22: fatal error: arm_neon.h: No such file or directory
norx.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 92, namely:
CompilerImplementations
cc neon
gcc neon
gcc -O2 -fomit-frame-pointer neon
gcc -O3 -fomit-frame-pointer neon
gcc -O -fomit-frame-pointer neon
gcc -Os -fomit-frame-pointer neon
gcc -fno-schedule-insns -O2 -fomit-frame-pointer neon
gcc -fno-schedule-insns -O3 -fomit-frame-pointer neon
gcc -fno-schedule-insns -O -fomit-frame-pointer neon
gcc -fno-schedule-insns -Os -fomit-frame-pointer neon
gcc -funroll-loops neon
gcc -funroll-loops -O2 -fomit-frame-pointer neon
gcc -funroll-loops -O3 -fomit-frame-pointer neon
gcc -funroll-loops -O -fomit-frame-pointer neon
gcc -funroll-loops -Os -fomit-frame-pointer neon
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer neon
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer neon
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer neon
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer neon
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -O -fomit-frame-pointer neon
gcc -funroll-loops -m64 -Os -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer neon
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer neon
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer neon
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer neon
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer neon
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer neon
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer neon
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer neon
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer neon
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer neon
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer neon
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer neon
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer neon
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer neon
gcc -m64 -O2 -fomit-frame-pointer neon
gcc -m64 -O3 -fomit-frame-pointer neon
gcc -m64 -O -fomit-frame-pointer neon
gcc -m64 -Os -fomit-frame-pointer neon
gcc -m64 -march=core2 -O2 -fomit-frame-pointer neon
gcc -m64 -march=core2 -O3 -fomit-frame-pointer neon
gcc -m64 -march=core2 -O -fomit-frame-pointer neon
gcc -m64 -march=core2 -Os -fomit-frame-pointer neon
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer neon
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer neon
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer neon
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer neon
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer neon
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer neon
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer neon
gcc -m64 -march=corei7 -O -fomit-frame-pointer neon
gcc -m64 -march=corei7 -Os -fomit-frame-pointer neon
gcc -m64 -march=k8 -O2 -fomit-frame-pointer neon
gcc -m64 -march=k8 -O3 -fomit-frame-pointer neon
gcc -m64 -march=k8 -O -fomit-frame-pointer neon
gcc -m64 -march=k8 -Os -fomit-frame-pointer neon
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer neon
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer neon
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer neon
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer neon
gcc -m64 -march=nocona -O2 -fomit-frame-pointer neon
gcc -m64 -march=nocona -O3 -fomit-frame-pointer neon
gcc -m64 -march=nocona -O -fomit-frame-pointer neon
gcc -m64 -march=nocona -Os -fomit-frame-pointer neon
gcc -march=barcelona -O2 -fomit-frame-pointer neon
gcc -march=barcelona -O3 -fomit-frame-pointer neon
gcc -march=barcelona -O -fomit-frame-pointer neon
gcc -march=barcelona -Os -fomit-frame-pointer neon
gcc -march=k8 -O2 -fomit-frame-pointer neon
gcc -march=k8 -O3 -fomit-frame-pointer neon
gcc -march=k8 -O -fomit-frame-pointer neon
gcc -march=k8 -Os -fomit-frame-pointer neon
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv neon
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv neon
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv neon
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv neon
gcc -march=nocona -O2 -fomit-frame-pointer neon
gcc -march=nocona -O3 -fomit-frame-pointer neon
gcc -march=nocona -O -fomit-frame-pointer neon
gcc -march=nocona -Os -fomit-frame-pointer neon

Compiler output

Implementation: crypto_aead/norx6461v3/neon
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
norx.c: In file included from norx.c:18:
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:28:2: error: "NEON support not enabled"
norx.c: #error "NEON support not enabled"
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:48:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t;
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:49:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t;
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:50:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t;
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:51:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t;
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:52:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t;
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:53:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t;
norx.c: ^
norx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/arm_neon.h:54:24: error: 'neon_vector_type' attribute is not supported for this target
norx.c: typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t;
norx.c: ^
norx.c: ...

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

Compiler output

Implementation: crypto_aead/norx6461v3/ymm
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
norx.c: norx.c:391:23: 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: const __m256i K = 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:395: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: INITIALISE(A, B, C, D, nonce, K);
norx.c: ^
norx.c: norx.c:293:9: note: expanded from macro 'INITIALISE'
norx.c: A = LOADU(NONCE); \
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:395: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:295:9: note: expanded from macro 'INITIALISE'
norx.c: C = _mm256_set_epi64x(U11, U10, U9, U8); \
norx.c: ^
norx.c: norx.c:395: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:296:9: note: expanded from macro 'INITIALISE'
norx.c: D = _mm256_set_epi64x(U15, U14, U13, U12); \
norx.c: ^
norx.c: norx.c:395:5: error: always_inline function '_mm256_xor_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:297:9: note: expanded from macro 'INITIALISE'
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/norx6461v3/ymm
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
norx.c: norx.c:391:23: 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: const __m256i K = 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:395: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: INITIALISE(A, B, C, D, nonce, K);
norx.c: ^
norx.c: norx.c:293:9: note: expanded from macro 'INITIALISE'
norx.c: A = LOADU(NONCE); \
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:395: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:295:9: note: expanded from macro 'INITIALISE'
norx.c: C = _mm256_set_epi64x(U11, U10, U9, U8); \
norx.c: ^
norx.c: norx.c:395: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:296:9: note: expanded from macro 'INITIALISE'
norx.c: D = _mm256_set_epi64x(U15, U14, U13, U12); \
norx.c: ^
norx.c: norx.c:395:5: error: always_inline function '_mm256_xor_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:297:9: note: expanded from macro 'INITIALISE'
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/norx6461v3/ymm
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:391:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
norx.c: const __m256i K = LOADU(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:297: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:395:5: note: in expansion of macro 'INITIALISE'
norx.c: INITIALISE(A, B, C, D, nonce, K);
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:297:9: note: in expansion of macro 'XOR'
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
norx.c: ...
norx.c: norx.c: In function 'norx_aead_encrypt':
norx.c: norx.c:391:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
norx.c: const __m256i K = LOADU(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:297: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:395:5: note: in expansion of macro 'INITIALISE'
norx.c: INITIALISE(A, B, C, D, nonce, K);
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:297:9: note: in expansion of macro 'XOR'
norx.c: D = XOR(D, _mm256_set_epi64x(NORX_T, NORX_P, NORX_L, NORX_W)); \
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

Compiler output

Implementation: crypto_aead/norx6461v3/neon
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
norx.c: norx.c:18:22: fatal error: arm_neon.h: No such file or directory
norx.c: compilation terminated.
norx.c: norx.c:18:22: fatal error: arm_neon.h: No such file or directory
norx.c: compilation terminated.

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