From 00a64101e9bad07b75eb5ec5576567815fc2779b Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 15 Aug 2024 05:59:29 +0300 Subject: [PATCH] better bitp_set apparently gcc & clang aren't smart enough to notice the unnecessary intermediate u64 --- src/core/numarr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/numarr.h b/src/core/numarr.h index cdccedba..ed4c6197 100644 --- a/src/core/numarr.h +++ b/src/core/numarr.h @@ -25,7 +25,7 @@ typedef TyArr BitArr; #define BIT_N(IA) (((IA)+63) >> 6) // u64 count needed to store IA bits static inline void bitp_set(u64* arr, u64 n, bool v) { - u64 m = ((u64)1)<<(n&7); + u8 m = ((u8)1) << (n&7); if (v) ((u8*)arr)[n>>3]|= m; else ((u8*)arr)[n>>3]&= ~m; // arr[n>>6] = (arr[n>>6]&(~m)) | (((u64)v)<<(n&63));