Implementation notes: aarch64, pi4b, crypto_aead/morus1280128v1
Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: morus1280128v1
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
14218 | 7732 0 0 | 24657 896 872 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
14218 | 7916 0 0 | 23978 880 880 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
14218 | 10588 0 0 | 26690 880 880 | T:ref64 | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
21327 | 3984 0 0 | 19018 880 864 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
21327 | 4292 0 0 | 19393 872 864 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
21327 | 5392 0 0 | 22329 896 872 | T:ref64 | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
21327 | 5296 0 0 | 20354 880 864 | T:ref64 | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
21327 | 5680 0 0 | 20801 872 864 | T:ref64 | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
21327 | 5064 0 0 | 19122 864 856 | T:ref64 | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
23114 | 3664 0 0 | 17706 864 856 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240629 | 20240625 |
Compiler output
morus1280128v1avx2.c: In file included from morus1280128v1avx2.c:2:
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1avx2.c: #error "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: In file included from morus1280128v1avx2.c:2:
morus1280128v1avx2.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:17:
morus1280128v1avx2.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/x86gprintrin.h:15:
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/hresetintrin.h:42:27: error: invalid input constraint 'a' in asm
morus1280128v1avx2.c: __asm__ ("hreset $0" :: "a"(__eax));
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: In file included from morus1280128v1avx2.c:2:
morus1280128v1avx2.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:21:
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1avx2.c: #error "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:54:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1avx2.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:133:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1avx2.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:163:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1avx2.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:193:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1avx2.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:avx2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
morus1280128v1avx2.c: morus1280128v1avx2.c:2:10: fatal error: immintrin.h: No such file or directory
morus1280128v1avx2.c: 2 | #include <immintrin.h>
morus1280128v1avx2.c: | ^~~~~~~~~~~~~
morus1280128v1avx2.c: compilation terminated.
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
encrypt.c: encrypt.c:224:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
encrypt.c: uint8_t plaintextblock[32], ciphertextblock[32];
encrypt.c: ^
encrypt.c: encrypt.c:268:25: warning: unused variable 'j' [-Wunused-variable]
encrypt.c: unsigned long i,j;
encrypt.c: ^
encrypt.c: encrypt.c:269:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
encrypt.c: uint8_t plaintextblock[32], ciphertextblock[32];
encrypt.c: ^
encrypt.c: encrypt.c:270:17: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c: uint8_t tag[16];
encrypt.c: ^
encrypt.c: encrypt.c:271:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c: uint8_t check = 0;
encrypt.c: ^
encrypt.c: 5 warnings generated.
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
encrypt.c: encrypt.c: In function 'crypto_aead_morus1280128v1_ref_timingleaks_encrypt':
encrypt.c: encrypt.c:224:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
encrypt.c: 224 | uint8_t plaintextblock[32], ciphertextblock[32];
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_morus1280128v1_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:271:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c: 271 | uint8_t check = 0;
encrypt.c: | ^~~~~
encrypt.c: encrypt.c:270:17: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c: 270 | uint8_t tag[16];
encrypt.c: | ^~~
encrypt.c: encrypt.c:269:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
encrypt.c: 269 | uint8_t plaintextblock[32], ciphertextblock[32];
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: encrypt.c:268:25: warning: unused variable 'j' [-Wunused-variable]
encrypt.c: 268 | unsigned long i,j;
encrypt.c: | ^
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
morus1280128v1opt64.c: morus1280128v1opt64.c:286:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1opt64.c: uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1opt64.c: ^
morus1280128v1opt64.c: morus1280128v1opt64.c:331:25: warning: unused variable 'j' [-Wunused-variable]
morus1280128v1opt64.c: unsigned long i,j;
morus1280128v1opt64.c: ^
morus1280128v1opt64.c: morus1280128v1opt64.c:332:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1opt64.c: uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1opt64.c: ^
morus1280128v1opt64.c: morus1280128v1opt64.c:333:17: warning: unused variable 'tag' [-Wunused-variable]
morus1280128v1opt64.c: uint8_t tag[16];
morus1280128v1opt64.c: ^
morus1280128v1opt64.c: morus1280128v1opt64.c:334:17: warning: unused variable 'check' [-Wunused-variable]
morus1280128v1opt64.c: uint8_t check = 0;
morus1280128v1opt64.c: ^
morus1280128v1opt64.c: 5 warnings generated.
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:ref64 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
morus1280128v1opt64.c: morus1280128v1opt64.c: In function 'crypto_aead_morus1280128v1_ref64_timingleaks_encrypt':
morus1280128v1opt64.c: morus1280128v1opt64.c:286:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1opt64.c: 286 | uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1opt64.c: | ^~~~~~~~~~~~~~
morus1280128v1opt64.c: morus1280128v1opt64.c: In function 'crypto_aead_morus1280128v1_ref64_timingleaks_decrypt':
morus1280128v1opt64.c: morus1280128v1opt64.c:334:17: warning: unused variable 'check' [-Wunused-variable]
morus1280128v1opt64.c: 334 | uint8_t check = 0;
morus1280128v1opt64.c: | ^~~~~
morus1280128v1opt64.c: morus1280128v1opt64.c:333:17: warning: unused variable 'tag' [-Wunused-variable]
morus1280128v1opt64.c: 333 | uint8_t tag[16];
morus1280128v1opt64.c: | ^~~
morus1280128v1opt64.c: morus1280128v1opt64.c:332:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1opt64.c: 332 | uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1opt64.c: | ^~~~~~~~~~~~~~
morus1280128v1opt64.c: morus1280128v1opt64.c:331:25: warning: unused variable 'j' [-Wunused-variable]
morus1280128v1opt64.c: 331 | unsigned long i,j;
morus1280128v1opt64.c: | ^
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:ref64 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref64 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref64 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref64 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
morus1280128v1sse2.c: In file included from morus1280128v1sse2.c:2:
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1sse2.c: #error "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1sse2.c: ^
morus1280128v1sse2.c: In file included from morus1280128v1sse2.c:2:
morus1280128v1sse2.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:17:
morus1280128v1sse2.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/x86gprintrin.h:15:
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/hresetintrin.h:42:27: error: invalid input constraint 'a' in asm
morus1280128v1sse2.c: __asm__ ("hreset $0" :: "a"(__eax));
morus1280128v1sse2.c: ^
morus1280128v1sse2.c: In file included from morus1280128v1sse2.c:2:
morus1280128v1sse2.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:21:
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1sse2.c: #error "This header is only meant to be used on x86 and x64 architecture"
morus1280128v1sse2.c: ^
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:54:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1sse2.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:133:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1sse2.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:163:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1sse2.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:193:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1sse2.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:sse2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
morus1280128v1sse2.c: morus1280128v1sse2.c:2:10: fatal error: immintrin.h: No such file or directory
morus1280128v1sse2.c: 2 | #include <immintrin.h>
morus1280128v1sse2.c: | ^~~~~~~~~~~~~
morus1280128v1sse2.c: compilation terminated.
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:sse2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:sse2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:sse2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:sse2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |