Implementation notes: amd64, hydra1, crypto_aead/norx6441v3

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: norx6441v3
TimeImplementationCompilerBenchmark dateSUPERCOP version
34214xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016122720161220
34221xmmgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
34223xmmgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016122720161220
34234xmmgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
34274xmmgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
34274xmmgcc -march=nocona -O3 -fomit-frame-pointer2016122720161220
35011xmmgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
35020xmmgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
35042xmmgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016122720161220
35086xmmgcc -funroll-loops -O -fomit-frame-pointer2016122720161220
35108xmmgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
35120xmmgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016122720161220
35120xmmgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016122720161220
35149xmmgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
35200xmmgcc -funroll-loops -m64 -O -fomit-frame-pointer2016122720161220
36504xmmclang -O3 -fomit-frame-pointer -Qunused-arguments2016122720161220
36513xmmclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
36514xmmclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
36517xmmclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
36600xmmgcc -march=k8 -O -fomit-frame-pointer2016122720161220
36605xmmgcc -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
36693xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
36694xmmgcc -march=barcelona -O -fomit-frame-pointer2016122720161220
36702xmmgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016122720161220
36717xmmgcc -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
36718xmmgcc -march=nocona -O -fomit-frame-pointer2016122720161220
36722xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016122720161220
36770xmmgcc -m64 -O -fomit-frame-pointer2016122720161220
36773xmmgcc -O -fomit-frame-pointer2016122720161220
36773xmmgcc -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
37308xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
37308xmmgcc -march=nocona -O2 -fomit-frame-pointer2016122720161220
38072xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
38074xmmclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016122720161220
40415refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
40422refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016122720161220
40458refgcc -funroll-loops -O3 -fomit-frame-pointer2016122720161220
40900refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016122720161220
40910refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
40928refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
40959refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016122720161220
40970refgcc -funroll-loops -O2 -fomit-frame-pointer2016122720161220
41107refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
41117refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016122720161220
41173refgcc -O3 -fomit-frame-pointer2016122720161220
41229refgcc -m64 -O3 -fomit-frame-pointer2016122720161220
41232refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
41294xmmgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016122720161220
41309xmmgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016122720161220
41312xmmgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
41352xmmgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
41354xmmgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
41355xmmgcc -march=barcelona -O3 -fomit-frame-pointer2016122720161220
41359xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016122720161220
41365xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016122720161220
41602refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016122720161220
41625refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
41806refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
41867refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016122720161220
41906refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016122720161220
41909refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016122720161220
41915refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
41925refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
42086refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016122720161220
42147refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
42149refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016122720161220
42191refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016122720161220
42192refgcc -march=barcelona -O3 -fomit-frame-pointer2016122720161220
42203refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
42208refgcc -march=k8 -O3 -fomit-frame-pointer2016122720161220
42212refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016122720161220
42248refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
42264refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016122720161220
42269refgcc -O2 -fomit-frame-pointer2016122720161220
42278refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
42293refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016122720161220
42302refgcc -m64 -O2 -fomit-frame-pointer2016122720161220
42333refgcc -funroll-loops -Os -fomit-frame-pointer2016122720161220
42342refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
42356refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
42365refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
42370refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016122720161220
42379refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016122720161220
42389refgcc -march=nocona -O3 -fomit-frame-pointer2016122720161220
42462refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016122720161220
42470refgcc -funroll-loops -O -fomit-frame-pointer2016122720161220
42501refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
42531refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016122720161220
42551refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016122720161220
42557refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
42749refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016122720161220
42752refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016122720161220
42752refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016122720161220
42787xmmgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
42797xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016122720161220
42798xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016122720161220
42803xmmgcc -march=barcelona -O2 -fomit-frame-pointer2016122720161220
42819refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016122720161220
43197refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
43269refgcc -march=k8 -O2 -fomit-frame-pointer2016122720161220
43624refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016122720161220
43685refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016122720161220
43717refgcc -march=nocona -O2 -fomit-frame-pointer2016122720161220
43733refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016122720161220
43741refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016122720161220
43802refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016122720161220
43829refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016122720161220
43834refgcc -fno-schedule-insns -O -fomit-frame-pointer2016122720161220
43933refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016122720161220
43936refgcc -O -fomit-frame-pointer2016122720161220
43939refgcc -march=barcelona -O -fomit-frame-pointer2016122720161220
43941refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016122720161220
43946refgcc -m64 -O -fomit-frame-pointer2016122720161220
44109refgcc -m64 -march=nocona -O -fomit-frame-pointer2016122720161220
44123refgcc -march=nocona -O -fomit-frame-pointer2016122720161220
44221xmmgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
44227xmmgcc -march=k8 -O3 -fomit-frame-pointer2016122720161220
44232xmmgcc -O3 -fomit-frame-pointer2016122720161220
44232xmmgcc -m64 -O3 -fomit-frame-pointer2016122720161220
44238xmmgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
44261refgcc -m64 -march=core2 -O -fomit-frame-pointer2016122720161220
44278refgcc -march=k8 -O -fomit-frame-pointer2016122720161220
44304refgcc -m64 -march=k8 -O -fomit-frame-pointer2016122720161220
44504refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016122720161220
44845refgcc -march=barcelona -O2 -fomit-frame-pointer2016122720161220
44848xmmgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016122720161220
44878xmmgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
44880xmmgcc -funroll-loops -O2 -fomit-frame-pointer2016122720161220
44880xmmgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016122720161220
44908xmmgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016122720161220
44917xmmgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
44918refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016122720161220
44928xmmgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016122720161220
44947xmmgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016122720161220
44952xmmgcc -funroll-loops -O3 -fomit-frame-pointer2016122720161220
44953xmmgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016122720161220
45832xmmgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016122720161220
45833xmmgcc -m64 -O2 -fomit-frame-pointer2016122720161220
45838xmmgcc -O2 -fomit-frame-pointer2016122720161220
45912xmmgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016122720161220
45920xmmgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
45926xmmgcc -march=k8 -O2 -fomit-frame-pointer2016122720161220
45931xmmgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016122720161220
46149xmmgcc -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
46157xmmgcc -march=nocona -Os -fomit-frame-pointer2016122720161220
47272refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
47331refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016122720161220
47389refgcc -march=k8 -Os -fomit-frame-pointer2016122720161220
47394refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
47509refgcc -Os -fomit-frame-pointer2016122720161220
47510refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
47517refgcc -m64 -Os -fomit-frame-pointer2016122720161220
47533refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016122720161220
47536refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016122720161220
47536refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016122720161220
47568refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016122720161220
47699refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016122720161220
47717refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
47725refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016122720161220
47725refgcc -march=barcelona -Os -fomit-frame-pointer2016122720161220
47875refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016122720161220
47888refgcc -march=nocona -Os -fomit-frame-pointer2016122720161220
51630refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
51648refclang -O3 -fomit-frame-pointer -Qunused-arguments2016122720161220
51667refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
51734refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
52722xmmgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016122720161220
52734xmmgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
53325xmmgcc -march=barcelona -Os -fomit-frame-pointer2016122720161220
53329xmmgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016122720161220
53332xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016122720161220
53340xmmgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016122720161220
56678xmmgcc -funroll-loops -Os -fomit-frame-pointer2016122720161220
56683xmmgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
56684xmmgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016122720161220
56686xmmgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016122720161220
56694xmmgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
56722xmmgcc -m64 -Os -fomit-frame-pointer2016122720161220
56722xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer2016122720161220
56724xmmgcc -march=k8 -Os -fomit-frame-pointer2016122720161220
56728xmmgcc -Os -fomit-frame-pointer2016122720161220
56730xmmgcc -fno-schedule-insns -Os -fomit-frame-pointer2016122720161220
58560refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016122720161220
58571refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016122720161220
242491refgcc2016122720161220
242685refgcc -funroll-loops2016122720161220
242806refcc2016122720161220
385203xmmgcc -funroll-loops2016122720161220
385276xmmgcc2016122720161220
385477xmmcc2016122720161220

Test failure

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