1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
3 */
4
5/**
6 * @file
7 * Branch Prediction Helpers in RTE
8 */
9
10#ifndef _RTE_BRANCH_PREDICTION_H_
11#define _RTE_BRANCH_PREDICTION_H_
12
13/**
14 * Check if a branch is likely to be taken.
15 *
16 * This compiler builtin allows the developer to indicate if a branch is
17 * likely to be taken. Example:
18 *
19 *   if (likely(x > 1))
20 *      do_stuff();
21 *
22 */
23#ifndef likely
24#define likely(x)	__builtin_expect(!!(x), 1)
25#endif /* likely */
26
27/**
28 * Check if a branch is unlikely to be taken.
29 *
30 * This compiler builtin allows the developer to indicate if a branch is
31 * unlikely to be taken. Example:
32 *
33 *   if (unlikely(x < 1))
34 *      do_stuff();
35 *
36 */
37#ifndef unlikely
38#define unlikely(x)	__builtin_expect(!!(x), 0)
39#endif /* unlikely */
40
41#endif /* _RTE_BRANCH_PREDICTION_H_ */
42