#define k_even_apack_16(ir) \ *adest++ = ap[ (i+ir)*rs_a + p_idx*cs_a ]; \ *adest++ = ap[ (i+ir)*rs_a + (p_idx+1)*cs_a ]; #define k_odd_apack_16(ir) \ *adest++ = ap[ (i+ir)*rs_a + (k-1)*cs_a ]; \ memset(adest, 0, 2); \ adest++; #define pad_macro_16(dest_matrix) \ memset(dest_matrix, 0, 4); \ dest_matrix+=2; #define BIT16_PACK_A(ch, DTYPE_IN) \ \ void PACK_FUNC_NAME(ch, a) \ ( \ dim_t MR, \ int m, int k, \ DTYPE_IN* ap, int rs_a, int cs_a, \ DTYPE_IN* apack \ ) \ { \ int k_odd = k%2; \ int p_idx; \ \ DTYPE_IN* adest = apack; \ for (int i=0; i