| 27 | { bucket->lru_list = ~0LLU; } |
| 28 | |
| 29 | static inline int |
| 30 | f_lru_pos(uint64_t lru_list) |
| 31 | { |
| 32 | /* Compare the vector to zero vector */ |
| 33 | uint16x4_t lru_vec = vld1_u16((uint16_t *)&lru_list); |
| 34 | uint16x4_t min_vec = vmov_n_u16(vminv_u16(lru_vec)); |
| 35 | uint64_t mask = vget_lane_u64(vreinterpret_u64_u16( |
| 36 | vceq_u16(min_vec, lru_vec)), 0); |
| 37 | return rte_clz64(mask) >> 4; |
| 38 | } |
| 39 | #define lru_pos(bucket) f_lru_pos(bucket->lru_list) |
| 40 | |
| 41 | #define lru_update(bucket, mru_val) \ |
nothing calls this directly
no test coverage detected