Implementation notes: aarch64, lionheart30, crypto_aead/aegis128l

Computer: lionheart30
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: aegis128l
TimeImplementationCompilerBenchmark dateSUPERCOP version
70294refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
70381refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
71606refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
71777refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806

Compiler output

Implementation: crypto_aead/aegis128l/aesnia
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:5:
encrypt.c: In file included from /usr/bin/../lib/clang/3.4/include/wmmintrin.h:27:
encrypt.c: /usr/bin/../lib/clang/3.4/include/emmintrin.h:28:2: error: "SSE2 instruction set not enabled"
encrypt.c: #error "SSE2 instruction set not enabled"
encrypt.c: ^
encrypt.c: In file included from encrypt.c:5:
encrypt.c: /usr/bin/../lib/clang/3.4/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
encrypt.c: # error "AES/PCLMUL instructions not enabled"
encrypt.c: ^
encrypt.c: encrypt.c:14:82: error: unknown type name '__m128i'
encrypt.c: void aegis128L_initialization(const unsigned char *key, const unsigned char *iv, __m128i *state)
encrypt.c: ^
encrypt.c: encrypt.c:18:9: error: use of undeclared identifier '__m128i'
encrypt.c: __m128i tmp;
encrypt.c: ^
encrypt.c: encrypt.c:19:9: error: use of undeclared identifier '__m128i'
encrypt.c: __m128i keytmp = _mm_load_si128((__m128i*)key);
encrypt.c: ^
encrypt.c: encrypt.c:20:9: error: use of undeclared identifier '__m128i'
encrypt.c: __m128i ivtmp = _mm_load_si128((__m128i*)iv);
encrypt.c: ^
encrypt.c: encrypt.c:22:20: warning: implicit declaration of function '_mm_xor_si128' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: state[0] = _mm_xor_si128(keytmp, ivtmp);
encrypt.c: ^
encrypt.c: encrypt.c:22:34: error: use of undeclared identifier 'keytmp'
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/aegis128l/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: crypto_aead_aegis128l.a(ecrypt.o): In function `crypto_aead_aegis128l_ref_encrypt':
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_enc_aut_step'
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_enc_aut_step'
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_enc_aut_step'
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_enc_aut_step'
try.c: crypto_aead_aegis128l.a(ecrypt.o): In function `crypto_aead_aegis128l_ref_decrypt':
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_enc_aut_step'
try.c: crypto_aead_aegis128l.a(ecrypt.o):ecrypt.c:(.text+0x...): more undefined references to `aegis128L_enc_aut_step' follow
try.c: crypto_aead_aegis128l.a(ecrypt.o): In function `crypto_aead_aegis128l_ref_decrypt':
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_dec_aut_step'
try.c: ecrypt.c:(.text+0x...): undefined reference to `aegis128L_dec_aut_step'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: crypto_aead/aegis128l/aesnia
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:4:25: fatal error: immintrin.h: No such file or directory
encrypt.c: #include gt;
encrypt.c: ^
encrypt.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv aesnia aesnib aesnic
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv aesnia aesnib aesnic
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv aesnia aesnib aesnic
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv aesnia aesnib aesnic