Messages in this thread | | | From | Rasmus Villemoes <> | Subject | Re: [PATCH] Optimize int_sqrt for small values for faster idle | Date | Tue, 02 Feb 2016 21:46:05 +0100 |
| |
On Tue, Feb 02 2016, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Tue, 2016-02-02 at 00:08 +0100, Rasmus Villemoes wrote: > >> Thanks. (Is there a good way to tell gcc that avg*avg is actually a >> 32x32->64 multiplication?) > > If avg is 32bit, compiler does that for you. > > u32 avg = ... > > u64 result = (u64)avg * avg;
Yeah, but in this case avg is u64 because it is used to temporarily contain the sum of a bunch of u32s, before being divided by #bunch. So I'd have to write that as (u64)(u32)avg * (u32)avg, which isn't very readable :-/
I just thought the scenario of a u64 known to be holding a value < 2^32 was common enough that some utility macros already existed.
Rasmus
| |