Implementation notes: aarch64, pi3aplus, crypto_aead/pi64cipher256v2

Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: pi64cipher256v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1309316503 8 020485 776 856T:ref3clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
1375227651 8 021621 776 856T:ref2clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
16316827231 8 041648 872 864T:goptvgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
19875522879 8 035951 864 848T:goptvgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
22866822143 8 034879 864 848T:goptvgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
2534198939 8 023320 872 864T:ref3gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
3175646355 8 019391 864 848T:ref3gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
3397234863 8 016728 856 840T:ref3gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
4313469827 8 021808 856 840T:goptvgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
4363165231 8 017943 864 848T:ref3gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
7637698923 8 023336 872 864T:ref2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
10124066171 8 019247 864 848T:ref2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
12089705275 8 017176 856 840T:ref2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
14410485939 8 018687 864 848T:ref2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716

Compiler output


pi-cipher.c: pi-cipher.c:286:9: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
pi-cipher.c:         n_t += __builtin_shuffle(y, g_mask);
pi-cipher.c:                ^
pi-cipher.c: pi-cipher.c:305:9: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
pi-cipher.c:         m_t += __builtin_shuffle(x, g_mask);
pi-cipher.c:                ^
pi-cipher.c: pi-cipher.c:354:9: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
pi-cipher.c:         m_t += __builtin_shuffle(x, g_mask);
pi-cipher.c:                ^
pi-cipher.c: 3 errors generated.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:goptvclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))

Compiler output


encrypt.c: encrypt.c:251:37: warning: unused variable 'y2' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                     ^
encrypt.c: encrypt.c:251:33: warning: unused variable 'y1' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                 ^
encrypt.c: encrypt.c:265:31: warning: unused variable 'ii' [-Wunused-variable]
encrypt.c:  unsigned long long i, j, jj, ii, b, i1, j1, a;
encrypt.c:                               ^
encrypt.c: encrypt.c:251:45: warning: unused variable 'z0' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                             ^
encrypt.c: encrypt.c:251:41: warning: unused variable 'y3' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                         ^
encrypt.c: encrypt.c:251:53: warning: unused variable 'z2' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                     ^
encrypt.c: encrypt.c:265:42: warning: unused variable 'j1' [-Wunused-variable]
encrypt.c:  unsigned long long i, j, jj, ii, b, i1, j1, a;
encrypt.c:                                          ^
encrypt.c: encrypt.c:251:49: warning: unused variable 'z1' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                 ^
encrypt.c: encrypt.c:251:57: warning: unused variable 'z3' [-Wunused-variable]
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:optimized_nonSSEclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_pi64cipher256v2_optimized_nonSSE_timingleaks_encrypt':
encrypt.c: encrypt.c:265:42: warning: unused variable 'j1' [-Wunused-variable]
encrypt.c:   unsigned long long i, j, jj, ii, b, i1, j1, a;
encrypt.c:                                           ^~
encrypt.c: encrypt.c:265:31: warning: unused variable 'ii' [-Wunused-variable]
encrypt.c:   unsigned long long i, j, jj, ii, b, i1, j1, a;
encrypt.c:                                ^~
encrypt.c: encrypt.c:261:31: warning: variable 'CommonInternalState8' set but not used [-Wunused-but-set-variable]
encrypt.c:   u_int8_t   *InternalState8, *CommonInternalState8, *tempTag8;
encrypt.c:                                ^~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:253:51: warning: variable 'k64' set but not used [-Wunused-but-set-variable]
encrypt.c:   u_int64_t  *c64, *m64, *ad64, *nsec64, *npub64, *k64;
encrypt.c:                                                    ^~~
encrypt.c: encrypt.c:253:42: warning: variable 'npub64' set but not used [-Wunused-but-set-variable]
encrypt.c:   u_int64_t  *c64, *m64, *ad64, *nsec64, *npub64, *k64;
encrypt.c:                                           ^~~~~~
encrypt.c: encrypt.c:251:57: warning: unused variable 'z3' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                          ^~
encrypt.c: encrypt.c:251:53: warning: unused variable 'z2' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                      ^~
encrypt.c: encrypt.c:251:49: warning: unused variable 'z1' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                  ^~
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:optimized_nonSSEgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:optimized_nonSSEgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:optimized_nonSSEgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:optimized_nonSSEgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)

Compiler output


encrypt.c: encrypt.c:136:33: warning: unused variable 'y1' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                 ^
encrypt.c: encrypt.c:136:37: warning: unused variable 'y2' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                     ^
encrypt.c: encrypt.c:150:42: warning: unused variable 'j1' [-Wunused-variable]
encrypt.c:  unsigned long long i, j, jj, ii, b, i1, j1, a;
encrypt.c:                                          ^
encrypt.c: encrypt.c:136:25: warning: unused variable 'x3' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                         ^
encrypt.c: encrypt.c:136:29: warning: unused variable 'y0' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                             ^
encrypt.c: encrypt.c:136:53: warning: unused variable 'z2' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                     ^
encrypt.c: encrypt.c:136:57: warning: unused variable 'z3' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                         ^
encrypt.c: encrypt.c:136:41: warning: unused variable 'y3' [-Wunused-variable]
encrypt.c:  u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                         ^
encrypt.c: encrypt.c:136:45: warning: unused variable 'z0' [-Wunused-variable]
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_pi64cipher256v2_ref_timingleaks_encrypt':
encrypt.c: encrypt.c:150:42: warning: unused variable 'j1' [-Wunused-variable]
encrypt.c:   unsigned long long i, j, jj, ii, b, i1, j1, a;
encrypt.c:                                           ^~
encrypt.c: encrypt.c:146:31: warning: variable 'CommonInternalState8' set but not used [-Wunused-but-set-variable]
encrypt.c:   u_int8_t   *InternalState8, *CommonInternalState8, *tempTag8;
encrypt.c:                                ^~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:138:51: warning: variable 'k64' set but not used [-Wunused-but-set-variable]
encrypt.c:   u_int64_t  *c64, *m64, *ad64, *nsec64, *npub64, *k64;
encrypt.c:                                                    ^~~
encrypt.c: encrypt.c:138:42: warning: variable 'npub64' set but not used [-Wunused-but-set-variable]
encrypt.c:   u_int64_t  *c64, *m64, *ad64, *nsec64, *npub64, *k64;
encrypt.c:                                           ^~~~~~
encrypt.c: encrypt.c:136:57: warning: unused variable 'z3' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                          ^~
encrypt.c: encrypt.c:136:53: warning: unused variable 'z2' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                      ^~
encrypt.c: encrypt.c:136:49: warning: unused variable 'z1' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                                  ^~
encrypt.c: encrypt.c:136:45: warning: unused variable 'z0' [-Wunused-variable]
encrypt.c:   u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
encrypt.c:                                              ^~
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)

Namespace violations


pi-cipher.o PI_DECRYPT_BLOCK_Q T
pi-cipher.o pi64_decrypt_block T
pi-cipher.o pi64_decrypt_last_block T
pi-cipher.o pi64_decrypt_simple T
pi-cipher.o pi64_decrypt_smn T
pi-cipher.o pi64_encrypt_block T
pi-cipher.o pi64_encrypt_block_q T
pi-cipher.o pi64_encrypt_last_block T
pi-cipher.o pi64_encrypt_simple T
pi-cipher.o pi64_encrypt_smn T
pi-cipher.o pi64_extract_tag T
pi-cipher.o pi64_init T
pi-cipher.o pi64_process_ad_block T
pi-cipher.o pi64_process_ad_block_q T
pi-cipher.o pi64_process_ad_last_block T
pi-cipher.o pi_cipher_name D

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:goptvgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:goptvgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:goptvgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:goptvgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)

Namespace violations


pi-cipher.o pi64_decrypt_block T
pi-cipher.o pi64_decrypt_last_block T
pi-cipher.o pi64_decrypt_simple T
pi-cipher.o pi64_decrypt_smn T
pi-cipher.o pi64_encrypt_block T
pi-cipher.o pi64_encrypt_last_block T
pi-cipher.o pi64_encrypt_simple T
pi-cipher.o pi64_extract_tag T
pi-cipher.o pi64_init T
pi-cipher.o pi64_process_ad_block T
pi-cipher.o pi64_process_ad_last_block T
pi-cipher.o pi64_process_smn T
pi-cipher.o pi_cipher_name D

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:ref2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))
T:ref2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:ref2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:ref2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:ref2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)

Namespace violations


pi-cipher.o pi64_decrypt_block T
pi-cipher.o pi64_decrypt_last_block T
pi-cipher.o pi64_decrypt_simple T
pi-cipher.o pi64_decrypt_smn T
pi-cipher.o pi64_encrypt_block T
pi-cipher.o pi64_encrypt_last_block T
pi-cipher.o pi64_encrypt_simple T
pi-cipher.o pi64_encrypt_smn T
pi-cipher.o pi64_extract_tag T
pi-cipher.o pi64_init T
pi-cipher.o pi64_process_ad_block T
pi-cipher.o pi64_process_ad_last_block T
pi-cipher.o pi_cipher_name D

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:ref3clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))
T:ref3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:ref3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:ref3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)
T:ref3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (8.3.0)