Implementation notes: amd64, speed2supercop, crypto_aead/aes128poetv1aes4

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aes128poetv1aes4
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1400412071 0 029518 808 872T:niclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1401612071 0 029710 808 872T:niclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1402810399 0 024695 800 920T:niclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1420011863 0 027701 768 928T:nigcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1428811575 0 025461 768 928T:nigcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1622012737 0 026198 808 856T:niclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3938811294 0 024900 760 928T:nigcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
416644410 0 016864 744 896T:nigcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
13896822121 0 035997 768 928T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14114819673 0 032064 744 896T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14250023405 0 040935 816 872T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14252824189 0 041927 816 872T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14469620910 0 035208 808 920T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14586025231 0 041543 816 856T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14608428073 0 043925 768 928T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14614422804 0 036388 760 928T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
15612422013 0 035567 816 856T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Compiler output


poet.c: poet.c:488:26: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     ctx->l = aes_encrypt(one, expanded_key);
poet.c:                          ^
poet.c: poet.c:182:24: note: expanded from macro 'one'
poet.c: #define one            _mm_insert_epi8(zero, 1, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-16/lib/clang/16/include/smmintrin.h:923:13: note: expanded from macro '_mm_insert_epi8'
poet.c:   ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), (int)(I),      \
poet.c:             ^
poet.c: poet.c:490:25: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     k_axu = aes_encrypt(two, expanded_key);
poet.c:                         ^
poet.c: poet.c:183:24: note: expanded from macro 'two'
poet.c: #define two            _mm_insert_epi8(zero, 2, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-16/lib/clang/16/include/smmintrin.h:923:13: note: expanded from macro '_mm_insert_epi8'
poet.c:   ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), (int)(I),      \
poet.c:             ^
poet.c: poet.c:493:25: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     k_axu = aes_encrypt(three, expanded_key);
poet.c:                         ^
poet.c: poet.c:184:24: note: expanded from macro 'three'
poet.c: #define three          _mm_insert_epi8(zero, 3, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-16/lib/clang/16/include/smmintrin.h:923:13: note: expanded from macro '_mm_insert_epi8'
poet.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:niclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


poet.c: poet.c:143:46: warning: argument 'key' of type 'const uint8_t[128]' (aka 'const unsigned char[128]') with mismatched bound [-Warray-parameter]
poet.c: void keysetup(poet_ctx_t *ctx, const uint8_t key[KEYLEN_BITS])
poet.c:                                              ^
poet.c: ./poet.h:45:29: note: previously declared as 'const uint8_t[16]' (aka 'const unsigned char[16]') here
poet.c:               const uint8_t key[KEYLEN]);
poet.c:                             ^
poet.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


poet.c: poet.c:143:46: warning: argument 2 of type 'const uint8_t[128]' {aka 'const unsigned char[128]'} with mismatched bound [-Warray-parameter=]
poet.c:   143 | void keysetup(poet_ctx_t *ctx, const uint8_t key[KEYLEN_BITS])
poet.c:       |                                ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
poet.c: In file included from poet.c:33:
poet.c: poet.h:45:29: note: previously declared as 'const uint8_t[16]' {aka 'const unsigned char[16]'}
poet.c:    45 |               const uint8_t key[KEYLEN]);
poet.c:       |               ~~~~~~~~~~~~~~^~~~~~~~~~~

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