summaryrefslogtreecommitdiff
path: root/lib/table
diff options
context:
space:
mode:
authorDavid Marchand <[email protected]>2023-08-25 11:13:25 +0200
committerDavid Marchand <[email protected]>2023-09-05 17:22:27 +0200
commit3d4e27fd7ff050d565c7450930c92fb945706518 (patch)
treedfa0d2fab2ccdd15d37d3f151c3fd35040b3d7b2 /lib/table
parent799d56f1192d72872e63fbb3d2c7f776b7ae89b0 (diff)
use abstracted bit count functions
Now that DPDK provides such bit count functions, make use of them. This patch was prepared with a "brutal" commandline: $ old=__builtin_clzll; new=rte_clz64; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_clz; new=rte_clz32; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_ctzll; new=rte_ctz64; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_ctz; new=rte_ctz32; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_popcountll; new=rte_popcount64; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_popcount; new=rte_popcount32; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" Then inclusion of rte_bitops.h was added were necessary. Signed-off-by: David Marchand <[email protected]> Acked-by: Tyler Retzlaff <[email protected]> Reviewed-by: Long Li <[email protected]>
Diffstat (limited to 'lib/table')
-rw-r--r--lib/table/rte_swx_table_learner.c6
-rw-r--r--lib/table/rte_table_acl.c8
-rw-r--r--lib/table/rte_table_array.c6
-rw-r--r--lib/table/rte_table_hash_cuckoo.c6
-rw-r--r--lib/table/rte_table_hash_ext.c20
-rw-r--r--lib/table/rte_table_hash_key16.c26
-rw-r--r--lib/table/rte_table_hash_key32.c26
-rw-r--r--lib/table/rte_table_hash_key8.c26
-rw-r--r--lib/table/rte_table_hash_lru.c20
-rw-r--r--lib/table/rte_table_lpm.c6
-rw-r--r--lib/table/rte_table_lpm_ipv6.c6
-rw-r--r--lib/table/rte_table_stub.c2
12 files changed, 79 insertions, 79 deletions
diff --git a/lib/table/rte_swx_table_learner.c b/lib/table/rte_swx_table_learner.c
index 996fd3de5b..2b5e6bdce1 100644
--- a/lib/table/rte_swx_table_learner.c
+++ b/lib/table/rte_swx_table_learner.c
@@ -202,7 +202,7 @@ table_params_get(struct table_params *p, struct rte_swx_table_learner_params *pa
p->key_size_pow2 = rte_align64pow2(p->key_size);
- p->key_size_log2 = __builtin_ctzll(p->key_size_pow2);
+ p->key_size_log2 = rte_ctz64(p->key_size_pow2);
p->key_offset = params->key_offset;
@@ -211,7 +211,7 @@ table_params_get(struct table_params *p, struct rte_swx_table_learner_params *pa
p->data_size_pow2 = rte_align64pow2(sizeof(uint64_t) + p->action_data_size);
- p->data_size_log2 = __builtin_ctzll(p->data_size_pow2);
+ p->data_size_log2 = rte_ctz64(p->data_size_pow2);
/* Buckets. */
p->n_buckets = rte_align32pow2(params->n_keys_max);
@@ -224,7 +224,7 @@ table_params_get(struct table_params *p, struct rte_swx_table_learner_params *pa
p->bucket_key_all_size +
TABLE_KEYS_PER_BUCKET * p->data_size_pow2);
- p->bucket_size_log2 = __builtin_ctzll(p->bucket_size);
+ p->bucket_size_log2 = rte_ctz64(p->bucket_size);
p->hash_func = params->hash_func ? params->hash_func : rte_hash_crc;
diff --git a/lib/table/rte_table_acl.c b/lib/table/rte_table_acl.c
index 53fd5c66ad..902cb78eac 100644
--- a/lib/table/rte_table_acl.c
+++ b/lib/table/rte_table_acl.c
@@ -719,12 +719,12 @@ rte_table_acl_lookup(
uint64_t pkts_out_mask;
uint32_t n_pkts, i, j;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_ACL_STATS_PKTS_IN_ADD(acl, n_pkts_in);
/* Input conversion */
for (i = 0, j = 0; i < (uint32_t)(RTE_PORT_IN_BURST_SIZE_MAX -
- __builtin_clzll(pkts_mask)); i++) {
+ rte_clz64(pkts_mask)); i++) {
uint64_t pkt_mask = 1LLU << i;
if (pkt_mask & pkts_mask) {
@@ -744,7 +744,7 @@ rte_table_acl_lookup(
pkts_out_mask = 0;
for (i = 0; i < n_pkts; i++) {
uint32_t action_table_pos = results[i];
- uint32_t pkt_pos = __builtin_ctzll(pkts_mask);
+ uint32_t pkt_pos = rte_ctz64(pkts_mask);
uint64_t pkt_mask = 1LLU << pkt_pos;
pkts_mask &= ~pkt_mask;
@@ -759,7 +759,7 @@ rte_table_acl_lookup(
}
*lookup_hit_mask = pkts_out_mask;
- RTE_TABLE_ACL_STATS_PKTS_LOOKUP_MISS(acl, n_pkts_in - __builtin_popcountll(pkts_out_mask));
+ RTE_TABLE_ACL_STATS_PKTS_LOOKUP_MISS(acl, n_pkts_in - rte_popcount64(pkts_out_mask));
return 0;
}
diff --git a/lib/table/rte_table_array.c b/lib/table/rte_table_array.c
index 54a0c42f7d..a45b29ed6a 100644
--- a/lib/table/rte_table_array.c
+++ b/lib/table/rte_table_array.c
@@ -146,12 +146,12 @@ rte_table_array_lookup(
void **entries)
{
struct rte_table_array *t = (struct rte_table_array *) table;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_ARRAY_STATS_PKTS_IN_ADD(t, n_pkts_in);
*lookup_hit_mask = pkts_mask;
if ((pkts_mask & (pkts_mask + 1)) == 0) {
- uint64_t n_pkts = __builtin_popcountll(pkts_mask);
+ uint64_t n_pkts = rte_popcount64(pkts_mask);
uint32_t i;
for (i = 0; i < n_pkts; i++) {
@@ -164,7 +164,7 @@ rte_table_array_lookup(
}
} else {
for ( ; pkts_mask; ) {
- uint32_t pkt_index = __builtin_ctzll(pkts_mask);
+ uint32_t pkt_index = rte_ctz64(pkts_mask);
uint64_t pkt_mask = 1LLU << pkt_index;
struct rte_mbuf *pkt = pkts[pkt_index];
uint32_t entry_pos = RTE_MBUF_METADATA_UINT32(pkt,
diff --git a/lib/table/rte_table_hash_cuckoo.c b/lib/table/rte_table_hash_cuckoo.c
index c77eccf527..86c960c103 100644
--- a/lib/table/rte_table_hash_cuckoo.c
+++ b/lib/table/rte_table_hash_cuckoo.c
@@ -237,7 +237,7 @@ rte_table_hash_cuckoo_lookup(void *table,
uint64_t pkts_mask_out = 0;
uint32_t i;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_CUCKOO_STATS_PKTS_IN_ADD(t, n_pkts_in);
@@ -268,7 +268,7 @@ rte_table_hash_cuckoo_lookup(void *table,
}
} else
for (i = 0; i < (uint32_t)(RTE_PORT_IN_BURST_SIZE_MAX
- - __builtin_clzll(pkts_mask)); i++) {
+ - rte_clz64(pkts_mask)); i++) {
uint64_t pkt_mask = 1LLU << i;
if (pkt_mask & pkts_mask) {
@@ -288,7 +288,7 @@ rte_table_hash_cuckoo_lookup(void *table,
*lookup_hit_mask = pkts_mask_out;
RTE_TABLE_HASH_CUCKOO_STATS_PKTS_LOOKUP_MISS(t,
- n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
diff --git a/lib/table/rte_table_hash_ext.c b/lib/table/rte_table_hash_ext.c
index 4753ccb15c..51a20acbd7 100644
--- a/lib/table/rte_table_hash_ext.c
+++ b/lib/table/rte_table_hash_ext.c
@@ -469,7 +469,7 @@ static int rte_table_hash_ext_lookup_unoptimized(
struct rte_table_hash *t = (struct rte_table_hash *) table;
uint64_t pkts_mask_out = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
for ( ; pkts_mask; ) {
struct bucket *bkt0, *bkt;
@@ -478,7 +478,7 @@ static int rte_table_hash_ext_lookup_unoptimized(
uint64_t pkt_mask, sig;
uint32_t pkt_index, bkt_index, i;
- pkt_index = __builtin_ctzll(pkts_mask);
+ pkt_index = rte_ctz64(pkts_mask);
pkt_mask = 1LLU << pkt_index;
pkts_mask &= ~pkt_mask;
@@ -669,12 +669,12 @@ static int rte_table_hash_ext_lookup_unoptimized(
struct rte_mbuf *mbuf00, *mbuf01; \
uint32_t key_offset = t->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
mbuf00 = pkts[pkt00_index]; \
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
mbuf01 = pkts[pkt01_index]; \
@@ -690,12 +690,12 @@ static int rte_table_hash_ext_lookup_unoptimized(
struct rte_mbuf *mbuf00, *mbuf01; \
uint32_t key_offset = t->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
mbuf00 = pkts[pkt00_index]; \
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
if (pkts_mask == 0) \
pkt01_index = pkt00_index; \
pkt01_mask = 1LLU << pkt01_index; \
@@ -857,15 +857,15 @@ static int rte_table_hash_ext_lookup(
uint64_t pkts_mask_out = 0, pkts_mask_match_many = 0;
int status = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_EXT_STATS_PKTS_IN_ADD(t, n_pkts_in);
/* Cannot run the pipeline with less than 7 packets */
- if (__builtin_popcountll(pkts_mask) < 7) {
+ if (rte_popcount64(pkts_mask) < 7) {
status = rte_table_hash_ext_lookup_unoptimized(table, pkts,
pkts_mask, lookup_hit_mask, entries);
RTE_TABLE_HASH_EXT_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in -
- __builtin_popcountll(*lookup_hit_mask));
+ rte_popcount64(*lookup_hit_mask));
return status;
}
@@ -976,7 +976,7 @@ static int rte_table_hash_ext_lookup(
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_EXT_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_EXT_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in - rte_popcount64(pkts_mask_out));
return status;
}
diff --git a/lib/table/rte_table_hash_key16.c b/lib/table/rte_table_hash_key16.c
index 04d7fd64bd..584c3f2c98 100644
--- a/lib/table/rte_table_hash_key16.c
+++ b/lib/table/rte_table_hash_key16.c
@@ -636,7 +636,7 @@ rte_table_hash_entry_delete_key16_ext(
uint64_t pkt_mask; \
uint32_t key_offset = f->key_offset;\
\
- pkt0_index = __builtin_ctzll(pkts_mask); \
+ pkt0_index = rte_ctz64(pkts_mask); \
pkt_mask = 1LLU << pkt0_index; \
pkts_mask &= ~pkt_mask; \
\
@@ -741,14 +741,14 @@ rte_table_hash_entry_delete_key16_ext(
uint64_t pkt00_mask, pkt01_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset));\
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
\
@@ -762,14 +762,14 @@ rte_table_hash_entry_delete_key16_ext(
uint64_t pkt00_mask, pkt01_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset)); \
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
if (pkts_mask == 0) \
pkt01_index = pkt00_index; \
pkt01_mask = 1LLU << pkt01_index; \
@@ -882,12 +882,12 @@ rte_table_hash_lookup_key16_lru(
uint32_t pkt11_index, pkt20_index, pkt21_index;
uint64_t pkts_mask_out = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_KEY16_STATS_PKTS_IN_ADD(f, n_pkts_in);
/* Cannot run the pipeline with less than 5 packets */
- if (__builtin_popcountll(pkts_mask) < 5) {
+ if (rte_popcount64(pkts_mask) < 5) {
for ( ; pkts_mask; ) {
struct rte_bucket_4_16 *bucket;
struct rte_mbuf *mbuf;
@@ -901,7 +901,7 @@ rte_table_hash_lookup_key16_lru(
*lookup_hit_mask = pkts_mask_out;
RTE_TABLE_HASH_KEY16_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in -
- __builtin_popcountll(pkts_mask_out));
+ rte_popcount64(pkts_mask_out));
return 0;
}
@@ -992,7 +992,7 @@ rte_table_hash_lookup_key16_lru(
*lookup_hit_mask = pkts_mask_out;
RTE_TABLE_HASH_KEY16_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in -
- __builtin_popcountll(pkts_mask_out));
+ rte_popcount64(pkts_mask_out));
return 0;
} /* lookup LRU */
@@ -1013,12 +1013,12 @@ rte_table_hash_lookup_key16_ext(
struct rte_bucket_4_16 *buckets[RTE_PORT_IN_BURST_SIZE_MAX];
uint64_t *keys[RTE_PORT_IN_BURST_SIZE_MAX];
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_KEY16_STATS_PKTS_IN_ADD(f, n_pkts_in);
/* Cannot run the pipeline with less than 5 packets */
- if (__builtin_popcountll(pkts_mask) < 5) {
+ if (rte_popcount64(pkts_mask) < 5) {
for ( ; pkts_mask; ) {
struct rte_bucket_4_16 *bucket;
struct rte_mbuf *mbuf;
@@ -1131,7 +1131,7 @@ grind_next_buckets:
uint64_t pkt_mask;
uint32_t pkt_index;
- pkt_index = __builtin_ctzll(buckets_mask);
+ pkt_index = rte_ctz64(buckets_mask);
pkt_mask = 1LLU << pkt_index;
buckets_mask &= ~pkt_mask;
@@ -1144,7 +1144,7 @@ grind_next_buckets:
*lookup_hit_mask = pkts_mask_out;
RTE_TABLE_HASH_KEY16_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in -
- __builtin_popcountll(pkts_mask_out));
+ rte_popcount64(pkts_mask_out));
return 0;
} /* lookup EXT */
diff --git a/lib/table/rte_table_hash_key32.c b/lib/table/rte_table_hash_key32.c
index 88d8f69c72..22b5ca9166 100644
--- a/lib/table/rte_table_hash_key32.c
+++ b/lib/table/rte_table_hash_key32.c
@@ -664,7 +664,7 @@ rte_table_hash_entry_delete_key32_ext(
uint64_t pkt_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt0_index = __builtin_ctzll(pkts_mask); \
+ pkt0_index = rte_ctz64(pkts_mask); \
pkt_mask = 1LLU << pkt0_index; \
pkts_mask &= ~pkt_mask; \
\
@@ -773,14 +773,14 @@ rte_table_hash_entry_delete_key32_ext(
uint64_t pkt00_mask, pkt01_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset));\
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
\
@@ -794,14 +794,14 @@ rte_table_hash_entry_delete_key32_ext(
uint64_t pkt00_mask, pkt01_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset)); \
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
if (pkts_mask == 0) \
pkt01_index = pkt00_index; \
\
@@ -919,11 +919,11 @@ rte_table_hash_lookup_key32_lru(
uint32_t pkt11_index, pkt20_index, pkt21_index;
uint64_t pkts_mask_out = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_KEY32_STATS_PKTS_IN_ADD(f, n_pkts_in);
/* Cannot run the pipeline with less than 5 packets */
- if (__builtin_popcountll(pkts_mask) < 5) {
+ if (rte_popcount64(pkts_mask) < 5) {
for ( ; pkts_mask; ) {
struct rte_bucket_4_32 *bucket;
struct rte_mbuf *mbuf;
@@ -936,7 +936,7 @@ rte_table_hash_lookup_key32_lru(
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_KEY32_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_KEY32_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
}
@@ -1027,7 +1027,7 @@ rte_table_hash_lookup_key32_lru(
mbuf20, mbuf21, bucket20, bucket21, pkts_mask_out, entries, f);
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_KEY32_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_KEY32_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
} /* rte_table_hash_lookup_key32_lru() */
@@ -1048,11 +1048,11 @@ rte_table_hash_lookup_key32_ext(
struct rte_bucket_4_32 *buckets[RTE_PORT_IN_BURST_SIZE_MAX];
uint64_t *keys[RTE_PORT_IN_BURST_SIZE_MAX];
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_KEY32_STATS_PKTS_IN_ADD(f, n_pkts_in);
/* Cannot run the pipeline with less than 5 packets */
- if (__builtin_popcountll(pkts_mask) < 5) {
+ if (rte_popcount64(pkts_mask) < 5) {
for ( ; pkts_mask; ) {
struct rte_bucket_4_32 *bucket;
struct rte_mbuf *mbuf;
@@ -1165,7 +1165,7 @@ grind_next_buckets:
uint64_t pkt_mask;
uint32_t pkt_index;
- pkt_index = __builtin_ctzll(buckets_mask);
+ pkt_index = rte_ctz64(buckets_mask);
pkt_mask = 1LLU << pkt_index;
buckets_mask &= ~pkt_mask;
@@ -1177,7 +1177,7 @@ grind_next_buckets:
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_KEY32_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_KEY32_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
} /* rte_table_hash_lookup_key32_ext() */
diff --git a/lib/table/rte_table_hash_key8.c b/lib/table/rte_table_hash_key8.c
index 035d242769..bd0ec4aac0 100644
--- a/lib/table/rte_table_hash_key8.c
+++ b/lib/table/rte_table_hash_key8.c
@@ -608,7 +608,7 @@ rte_table_hash_entry_delete_key8_ext(
uint64_t pkt_mask; \
uint32_t key_offset = f->key_offset;\
\
- pkt0_index = __builtin_ctzll(pkts_mask); \
+ pkt0_index = rte_ctz64(pkts_mask); \
pkt_mask = 1LLU << pkt0_index; \
pkts_mask &= ~pkt_mask; \
\
@@ -710,14 +710,14 @@ rte_table_hash_entry_delete_key8_ext(
uint64_t pkt00_mask, pkt01_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset));\
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
\
@@ -731,14 +731,14 @@ rte_table_hash_entry_delete_key8_ext(
uint64_t pkt00_mask, pkt01_mask; \
uint32_t key_offset = f->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset));\
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
if (pkts_mask == 0) \
pkt01_index = pkt00_index; \
\
@@ -854,11 +854,11 @@ rte_table_hash_lookup_key8_lru(
uint32_t pkt11_index, pkt20_index, pkt21_index;
uint64_t pkts_mask_out = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_KEY8_STATS_PKTS_IN_ADD(f, n_pkts_in);
/* Cannot run the pipeline with less than 5 packets */
- if (__builtin_popcountll(pkts_mask) < 5) {
+ if (rte_popcount64(pkts_mask) < 5) {
for ( ; pkts_mask; ) {
struct rte_bucket_4_8 *bucket;
struct rte_mbuf *mbuf;
@@ -871,7 +871,7 @@ rte_table_hash_lookup_key8_lru(
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
}
@@ -961,7 +961,7 @@ rte_table_hash_lookup_key8_lru(
bucket20, bucket21, pkts_mask_out, entries, f);
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
} /* lookup LRU */
@@ -982,11 +982,11 @@ rte_table_hash_lookup_key8_ext(
struct rte_bucket_4_8 *buckets[RTE_PORT_IN_BURST_SIZE_MAX];
uint64_t *keys[RTE_PORT_IN_BURST_SIZE_MAX];
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_KEY8_STATS_PKTS_IN_ADD(f, n_pkts_in);
/* Cannot run the pipeline with less than 5 packets */
- if (__builtin_popcountll(pkts_mask) < 5) {
+ if (rte_popcount64(pkts_mask) < 5) {
for ( ; pkts_mask; ) {
struct rte_bucket_4_8 *bucket;
struct rte_mbuf *mbuf;
@@ -1099,7 +1099,7 @@ grind_next_buckets:
uint64_t pkt_mask;
uint32_t pkt_index;
- pkt_index = __builtin_ctzll(buckets_mask);
+ pkt_index = rte_ctz64(buckets_mask);
pkt_mask = 1LLU << pkt_index;
buckets_mask &= ~pkt_mask;
@@ -1111,7 +1111,7 @@ grind_next_buckets:
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
} /* lookup EXT */
diff --git a/lib/table/rte_table_hash_lru.c b/lib/table/rte_table_hash_lru.c
index f312d898c2..a4e1a0599c 100644
--- a/lib/table/rte_table_hash_lru.c
+++ b/lib/table/rte_table_hash_lru.c
@@ -404,7 +404,7 @@ static int rte_table_hash_lru_lookup_unoptimized(
struct rte_table_hash *t = (struct rte_table_hash *) table;
uint64_t pkts_mask_out = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_LRU_STATS_PKTS_IN_ADD(t, n_pkts_in);
for ( ; pkts_mask; ) {
@@ -414,7 +414,7 @@ static int rte_table_hash_lru_lookup_unoptimized(
uint64_t pkt_mask, sig;
uint32_t pkt_index, bkt_index, i;
- pkt_index = __builtin_ctzll(pkts_mask);
+ pkt_index = rte_ctz64(pkts_mask);
pkt_mask = 1LLU << pkt_index;
pkts_mask &= ~pkt_mask;
@@ -447,7 +447,7 @@ static int rte_table_hash_lru_lookup_unoptimized(
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_LRU_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_LRU_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in - rte_popcount64(pkts_mask_out));
return 0;
}
@@ -606,12 +606,12 @@ static int rte_table_hash_lru_lookup_unoptimized(
struct rte_mbuf *mbuf00, *mbuf01; \
uint32_t key_offset = t->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
mbuf00 = pkts[pkt00_index]; \
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
mbuf01 = pkts[pkt01_index]; \
@@ -627,12 +627,12 @@ static int rte_table_hash_lru_lookup_unoptimized(
struct rte_mbuf *mbuf00, *mbuf01; \
uint32_t key_offset = t->key_offset; \
\
- pkt00_index = __builtin_ctzll(pkts_mask); \
+ pkt00_index = rte_ctz64(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
mbuf00 = pkts[pkt00_index]; \
\
- pkt01_index = __builtin_ctzll(pkts_mask); \
+ pkt01_index = rte_ctz64(pkts_mask); \
if (pkts_mask == 0) \
pkt01_index = pkt00_index; \
\
@@ -809,11 +809,11 @@ static int rte_table_hash_lru_lookup(
uint64_t pkts_mask_out = 0, pkts_mask_match_many = 0;
int status = 0;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_HASH_LRU_STATS_PKTS_IN_ADD(t, n_pkts_in);
/* Cannot run the pipeline with less than 7 packets */
- if (__builtin_popcountll(pkts_mask) < 7)
+ if (rte_popcount64(pkts_mask) < 7)
return rte_table_hash_lru_lookup_unoptimized(table, pkts,
pkts_mask, lookup_hit_mask, entries);
@@ -924,7 +924,7 @@ static int rte_table_hash_lru_lookup(
}
*lookup_hit_mask = pkts_mask_out;
- RTE_TABLE_HASH_LRU_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in - __builtin_popcountll(pkts_mask_out));
+ RTE_TABLE_HASH_LRU_STATS_PKTS_LOOKUP_MISS(t, n_pkts_in - rte_popcount64(pkts_mask_out));
return status;
}
diff --git a/lib/table/rte_table_lpm.c b/lib/table/rte_table_lpm.c
index 9de9e8a20d..c2ef0d9ba0 100644
--- a/lib/table/rte_table_lpm.c
+++ b/lib/table/rte_table_lpm.c
@@ -309,12 +309,12 @@ rte_table_lpm_lookup(
uint64_t pkts_out_mask = 0;
uint32_t i;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_LPM_STATS_PKTS_IN_ADD(lpm, n_pkts_in);
pkts_out_mask = 0;
for (i = 0; i < (uint32_t)(RTE_PORT_IN_BURST_SIZE_MAX -
- __builtin_clzll(pkts_mask)); i++) {
+ rte_clz64(pkts_mask)); i++) {
uint64_t pkt_mask = 1LLU << i;
if (pkt_mask & pkts_mask) {
@@ -334,7 +334,7 @@ rte_table_lpm_lookup(
}
*lookup_hit_mask = pkts_out_mask;
- RTE_TABLE_LPM_STATS_PKTS_LOOKUP_MISS(lpm, n_pkts_in - __builtin_popcountll(pkts_out_mask));
+ RTE_TABLE_LPM_STATS_PKTS_LOOKUP_MISS(lpm, n_pkts_in - rte_popcount64(pkts_out_mask));
return 0;
}
diff --git a/lib/table/rte_table_lpm_ipv6.c b/lib/table/rte_table_lpm_ipv6.c
index 8fde2c012f..6f3e11a14f 100644
--- a/lib/table/rte_table_lpm_ipv6.c
+++ b/lib/table/rte_table_lpm_ipv6.c
@@ -310,12 +310,12 @@ rte_table_lpm_ipv6_lookup(
uint64_t pkts_out_mask = 0;
uint32_t i;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_LPM_IPV6_STATS_PKTS_IN_ADD(lpm, n_pkts_in);
pkts_out_mask = 0;
for (i = 0; i < (uint32_t)(RTE_PORT_IN_BURST_SIZE_MAX -
- __builtin_clzll(pkts_mask)); i++) {
+ rte_clz64(pkts_mask)); i++) {
uint64_t pkt_mask = 1LLU << i;
if (pkt_mask & pkts_mask) {
@@ -335,7 +335,7 @@ rte_table_lpm_ipv6_lookup(
}
*lookup_hit_mask = pkts_out_mask;
- RTE_TABLE_LPM_IPV6_STATS_PKTS_LOOKUP_MISS(lpm, n_pkts_in - __builtin_popcountll(pkts_out_mask));
+ RTE_TABLE_LPM_IPV6_STATS_PKTS_LOOKUP_MISS(lpm, n_pkts_in - rte_popcount64(pkts_out_mask));
return 0;
}
diff --git a/lib/table/rte_table_stub.c b/lib/table/rte_table_stub.c
index 23d0de5c79..cc21516995 100644
--- a/lib/table/rte_table_stub.c
+++ b/lib/table/rte_table_stub.c
@@ -56,7 +56,7 @@ rte_table_stub_lookup(
__rte_unused void **entries)
{
__rte_unused struct rte_table_stub *stub = (struct rte_table_stub *) table;
- __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
+ __rte_unused uint32_t n_pkts_in = rte_popcount64(pkts_mask);
RTE_TABLE_LPM_STATS_PKTS_IN_ADD(stub, n_pkts_in);
*lookup_hit_mask = 0;