1010#include <string.h>
1111#include "../mldsa/ntt.h"
1212#include "../mldsa/poly.h"
13+ #include "../mldsa/polyvec.h"
1314#include "../mldsa/randombytes.h"
1415#include "hal.h"
1516
@@ -26,6 +27,9 @@ static int cmp_uint64_t(const void *a, const void *b)
2627 for (i = 0; i < NTESTS; i++) \
2728 { \
2829 randombytes((uint8_t *)data0, sizeof(data0)); \
30+ randombytes((uint8_t *)data1, sizeof(data1)); \
31+ randombytes((uint8_t *)data2, sizeof(data2)); \
32+ randombytes((uint8_t *)data3, sizeof(data3)); \
2933 for (j = 0; j < NWARMUP; j++) \
3034 { \
3135 code; \
@@ -44,15 +48,47 @@ static int cmp_uint64_t(const void *a, const void *b)
4448
4549static int bench (void )
4650{
47- MLD_ALIGN int32_t data0 [256 ];
51+ MLD_ALIGN int32_t data0 [MLDSA_N * MLDSA_K ];
52+ MLD_ALIGN int32_t data1 [MLDSA_N * MLDSA_K ];
53+ MLD_ALIGN int32_t data2 [MLDSA_N * MLDSA_K ];
54+ MLD_ALIGN int32_t data3 [MLDSA_N * MLDSA_K ];
4855 uint64_t cyc [NTESTS ];
4956 unsigned i , j ;
5057 uint64_t t0 , t1 ;
5158
52- /* ntt */
5359 BENCH ("poly_ntt" , poly_ntt ((poly * )data0 ))
5460 BENCH ("poly_invntt_tomont" , poly_invntt_tomont ((poly * )data0 ))
5561
62+ BENCH ("poly_pointwise_montgomery" ,
63+ poly_pointwise_montgomery ((poly * )data0 , (poly * )data1 , (poly * )data2 ))
64+ BENCH ("poly_reduce" , poly_reduce ((poly * )data0 ))
65+ BENCH ("poly_caddq" , poly_caddq ((poly * )data0 ))
66+ BENCH ("poly_add" , poly_add ((poly * )data0 , (poly * )data1 ))
67+ BENCH ("poly_sub" , poly_sub ((poly * )data0 , (poly * )data1 ))
68+ BENCH ("poly_shiftl" , poly_shiftl ((poly * )data0 ))
69+ BENCH ("poly_power2round" ,
70+ poly_power2round ((poly * )data0 , (poly * )data1 , (poly * )data2 ))
71+ BENCH ("poly_decompose" ,
72+ poly_decompose ((poly * )data0 , (poly * )data1 , (poly * )data2 ))
73+ BENCH ("poly_make_hint" ,
74+ poly_make_hint ((poly * )data0 , (poly * )data1 , (poly * )data2 ))
75+ BENCH ("poly_use_hint" ,
76+ poly_use_hint ((poly * )data0 , (poly * )data1 , (poly * )data2 ))
77+ BENCH ("poly_chknorm" , poly_chknorm ((poly * )data0 , INT32_MAX ))
78+ BENCH ("polyz_unpack" , polyz_unpack ((poly * )data0 , (uint8_t * )data1 ))
79+ BENCH ("polyw1_pack" , polyw1_pack ((uint8_t * )data0 , (poly * )data1 ))
80+ BENCH ("polyt1_unpack" , polyt1_unpack ((poly * )data0 , (uint8_t * )data1 ))
81+ BENCH ("polyt1_unpack" , polyt1_unpack ((poly * )data0 , (uint8_t * )data1 ))
82+ BENCH ("poly_uniform" , poly_uniform ((poly * )data0 , (uint8_t * )data1 ))
83+ BENCH ("poly_uniform_4x" , poly_uniform ((poly * )data0 , (uint8_t * )data1 ))
84+ BENCH ("poly_uniform_eta_4x" ,
85+ poly_uniform_eta_4x ((poly * )data0 , (poly * )data1 , (poly * )data2 ,
86+ (poly * )data3 , (uint8_t * )data1 , 0 , 1 , 2 , 3 ))
87+
88+ BENCH ("polyvecl_pointwise_acc_montgomery" ,
89+ polyvecl_pointwise_acc_montgomery ((poly * )data0 , (polyvecl * )data1 ,
90+ (polyvecl * )data2 ))
91+
5692 return 0 ;
5793}
5894
0 commit comments