From f8729ee92002d74553c1d5938937898a7334b863 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Tue, 7 Oct 2025 17:57:30 -0700 Subject: [PATCH] ir3: Use bitset range operations. This sped up the debugoptimized compile of a fossil I was looking at by 7%. Part-of: --- src/freedreno/ir3/ir3.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index e14838cfce1..c5271bbd8df 100644 --- a/src/freedreno/ir3/ir3.h +++ b/src/freedreno/ir3/ir3.h @@ -3333,27 +3333,21 @@ static inline bool __regmask_get(regmask_t *regmask, enum ir3_reg_file file, unsigned n, unsigned size) { BITSET_WORD *regs = __regmask_file(regmask, file); - for (unsigned i = 0; i < size; i++) { - if (BITSET_TEST(regs, n + i)) - return true; - } - return false; + return BITSET_TEST_RANGE(regs, n, n + size - 1); } static inline void __regmask_set(regmask_t *regmask, enum ir3_reg_file file, unsigned n, unsigned size) { BITSET_WORD *regs = __regmask_file(regmask, file); - for (unsigned i = 0; i < size; i++) - BITSET_SET(regs, n + i); + BITSET_SET_RANGE(regs, n, n + size - 1); } static inline void __regmask_clear(regmask_t *regmask, enum ir3_reg_file file, unsigned n, unsigned size) { BITSET_WORD *regs = __regmask_file(regmask, file); - for (unsigned i = 0; i < size; i++) - BITSET_CLEAR(regs, n + i); + BITSET_CLEAR_RANGE(regs, n, n + size - 1); } static inline void