Implementation notes: amd64, comet, crypto_aead/aes128poetv2aes4ni

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aes128poetv2aes4ni
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
115029561 0 025940 796 1088T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
115139000 0 023484 796 1088T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1268812470 0 030393 868 1056T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1268912470 0 030689 868 1088T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
138429449 0 024351 860 1088T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1425812859 0 026945 868 1024T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
291257415 0 021507 788 1088T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
293666224 0 019039 772 1056T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625

Compiler output


poet.c: poet.c:488:14: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     ctx->l = one;
poet.c:              ^
poet.c: poet.c:47:24: note: expanded from macro 'one'
poet.c: #define one            _mm_insert_epi8(zero, 1, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/smmintrin.h:930:13: note: expanded from macro '_mm_insert_epi8'
poet.c:   ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), \
poet.c:             ^
poet.c: poet.c:489:13: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     k_axu = two;
poet.c:             ^
poet.c: poet.c:48:24: note: expanded from macro 'two'
poet.c: #define two            _mm_insert_epi8(zero, 2, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/smmintrin.h:930:13: note: expanded from macro '_mm_insert_epi8'
poet.c:   ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), \
poet.c:             ^
poet.c: poet.c:490:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'keysetup_encrypt_only' that is compiled without support for 'aes'
poet.c:     aes_encrypt_3blocks_keysetup(k, ctx->l, k_axu, expanded_key);
poet.c:     ^
poet.c: poet.c:465:5: note: expanded from macro 'aes_encrypt_3blocks_keysetup'
poet.c:     aes_encrypt_round_3blocks_keysetup(x, y, z, k[1]); \
poet.c:     ^
poet.c: poet.c:448:9: note: expanded from macro 'aes_encrypt_round_3blocks_keysetup'
poet.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


poet.c: In file included from poet.c:31:
poet.c: In function '_mm_xor_si128',
poet.c:     inlined from 'encrypt_final' at poet.c:713:13:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/emmintrin.h:1329:21: warning: 'z' may be used uninitialized [-Wmaybe-uninitialized]
poet.c:  1329 |   return (__m128i) ((__v2du)__A ^ (__v2du)__B);
poet.c:       |                     ^~~~~~~~~~~
poet.c: poet.c: In function 'encrypt_final':
poet.c: poet.c:670:13: note: 'z' was declared here
poet.c:   670 |     __m128i z;
poet.c:       |             ^
poet.c: In function '_mm_xor_si128',
poet.c:     inlined from 'decrypt_final' at poet.c:875:13:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/emmintrin.h:1329:21: warning: 'z' may be used uninitialized [-Wmaybe-uninitialized]
poet.c:  1329 |   return (__m128i) ((__v2du)__A ^ (__v2du)__B);
poet.c:       |                     ^~~~~~~~~~~
poet.c: poet.c: In function 'decrypt_final':
poet.c: poet.c:837:13: note: 'z' was declared here
poet.c:   837 |     __m128i z;
poet.c:       |             ^

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

Compiler output


poet.c: In file included from poet.c:33:
poet.c: In function '_mm_aesenc_si128',
poet.c:     inlined from 'encrypt_final' at poet.c:707:13:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/wmmintrin.h:63:20: warning: 'z' may be used uninitialized [-Wmaybe-uninitialized]
poet.c:    63 |   return (__m128i) __builtin_ia32_aesenc128 ((__v2di)__X, (__v2di)__Y);
poet.c:       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poet.c: poet.c: In function 'encrypt_final':
poet.c: poet.c:670:13: note: 'z' was declared here
poet.c:   670 |     __m128i z;
poet.c:       |             ^
poet.c: In file included from poet.c:31:
poet.c: In function '_mm_xor_si128',
poet.c:     inlined from 'decrypt_final' at poet.c:875:13:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/emmintrin.h:1329:21: warning: 'z' may be used uninitialized [-Wmaybe-uninitialized]
poet.c:  1329 |   return (__m128i) ((__v2du)__A ^ (__v2du)__B);
poet.c:       |                     ^~~~~~~~~~~
poet.c: poet.c: In function 'decrypt_final':
poet.c: poet.c:837:13: note: 'z' was declared here
poet.c:   837 |     __m128i z;
poet.c:       |             ^

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