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