From 59a9dc3b623aab62b0e8ce120cc88780c3dbc941 Mon Sep 17 00:00:00 2001 From: TimePath Date: Tue, 12 May 2015 14:03:37 +1000 Subject: [PATCH] Branchless BITSET Kudos to graphitemaster --- qcsrc/common/util-pre.qh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qcsrc/common/util-pre.qh b/qcsrc/common/util-pre.qh index 91094e11f..fbc43bdc5 100644 --- a/qcsrc/common/util-pre.qh +++ b/qcsrc/common/util-pre.qh @@ -80,6 +80,10 @@ #define MAP_20(f, it, ...) f(it)MAP_19(f, __VA_ARGS__) #define BIT(n) (1 << (n)) -#define BITSET(var, mask, flag) (flag ? (var) | (mask) : (var) &~ (mask)) +#ifndef BRANCHLESS_BITSET + #define BITSET(var, mask, flag) (flag ? (var) | (mask) : (var) &~ (mask)) +#else + #define BITSET(var, mask, flag) ((var) ^ (-(flag) ^ (var)) & (mask)) +#endif #endif -- 2.39.2