Go to the documentation of this file.
5 #ifndef _CNE_ACL_VECT_H_
6 #define _CNE_ACL_VECT_H_
24 #define ACL_TR_HILO(P, TC, tr0, tr1, lo, hi) \
26 lo = (typeof(lo))_##P##_shuffle_ps((TC)(tr0), (TC)(tr1), 0x88); \
27 hi = (typeof(hi))_##P##_shuffle_ps((TC)(tr0), (TC)(tr1), 0xdd); \
43 #define ACL_TR_CALC_ADDR(P, S, addr, index_mask, next_input, shuffle_input, ones_16, range_base, \
47 typeof(addr) in, node_type, r, t; \
48 typeof(addr) dfa_msk, dfa_ofs, quad_ofs; \
50 t = _##P##_xor_si##S(index_mask, index_mask); \
51 in = _##P##_shuffle_epi8(next_input, shuffle_input); \
54 node_type = _##P##_andnot_si##S(index_mask, tr_lo); \
55 addr = _##P##_and_si##S(index_mask, tr_lo); \
58 dfa_msk = _##P##_cmpeq_epi32(node_type, t); \
61 r = _##P##_srli_epi32(in, 30); \
62 r = _##P##_add_epi8(r, range_base); \
63 t = _##P##_srli_epi32(in, 24); \
64 r = _##P##_shuffle_epi8(tr_hi, r); \
66 dfa_ofs = _##P##_sub_epi32(t, r); \
69 t = _##P##_cmpgt_epi8(in, tr_hi); \
70 t = _##P##_sign_epi8(t, t); \
71 t = _##P##_maddubs_epi16(t, t); \
72 quad_ofs = _##P##_madd_epi16(t, ones_16); \
75 t = _##P##_blendv_epi8(quad_ofs, dfa_ofs, dfa_msk); \
78 addr = _##P##_add_epi32(addr, t); \