From 2436c45f1d4e76c2ae492288d99d5f141ac8500a Mon Sep 17 00:00:00 2001 From: dzaima Date: Sat, 13 Jul 2024 00:07:59 +0300 Subject: [PATCH] Singeli ceil_log2 for compile-time numbers --- src/singeli/src/base.singeli | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/singeli/src/base.singeli b/src/singeli/src/base.singeli index 77ecb8a1..f0592377 100644 --- a/src/singeli/src/base.singeli +++ b/src/singeli/src/base.singeli @@ -241,6 +241,8 @@ def clz{x:T if isint{T} and width{T}==32} = emit{ux, '__builtin_clz', x} def clzc{x:T if isint{T}} = width{T} - clz{x} def ceil_log2{n} = clzc{n-1} +def ceil_log2{n if knum{n} and n>0} = ceil_log2{(n+1)>>1}+1 +def ceil_log2{1} = 0 def truncBits{n, v if n<=8} = cast_i{u8, v} def truncBits{n, v if n==16} = cast_i{u16, v}