acl: add infrastructure for AVX512 classify methods
[dpdk.git] / lib / librte_acl / acl_run_avx512.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation
3  */
4
5 #include "acl_run_sse.h"
6
7 int
8 rte_acl_classify_avx512x16(const struct rte_acl_ctx *ctx, const uint8_t **data,
9         uint32_t *results, uint32_t num, uint32_t categories)
10 {
11         if (num >= MAX_SEARCHES_SSE8)
12                 return search_sse_8(ctx, data, results, num, categories);
13         if (num >= MAX_SEARCHES_SSE4)
14                 return search_sse_4(ctx, data, results, num, categories);
15
16         return rte_acl_classify_scalar(ctx, data, results, num, categories);
17 }
18
19 int
20 rte_acl_classify_avx512x32(const struct rte_acl_ctx *ctx, const uint8_t **data,
21         uint32_t *results, uint32_t num, uint32_t categories)
22 {
23         if (num >= MAX_SEARCHES_SSE8)
24                 return search_sse_8(ctx, data, results, num, categories);
25         if (num >= MAX_SEARCHES_SSE4)
26                 return search_sse_4(ctx, data, results, num, categories);
27
28         return rte_acl_classify_scalar(ctx, data, results, num, categories);
29 }