Messages in this thread | | | From | Noah Goldstein <> | Date | Thu, 25 Nov 2021 00:49:34 -0600 | Subject | Re: [tip:x86/core 1/1] arch/x86/um/../lib/csum-partial_64.c:98:12: error: implicit declaration of function 'load_unaligned_zeropad' |
| |
On Thu, Nov 25, 2021 at 12:46 AM Eric Dumazet <edumazet@google.com> wrote: > > On Wed, Nov 24, 2021 at 10:32 PM Eric Dumazet <edumazet@google.com> wrote: > > > - } > > + if (unlikely(odd)) > > + result = ror32(result, 8); > > return (__force __wsum)result; > > Oh well, gcc at least removes the conditional and generates a ror and a cmov
Seems like a missed optimization for `unlikely` where dependency breaking is pretty common.
Although still saves a uop because of `imm8` operand.
> > mov %edx,%eax > ror $0x8,%eax > test %r8,%r8 > cmove %edx,%eax > ret > > clang keeps the cond jmp > test $0x1,%dil > je 93 > rol $0x18,%eax > 93: ret
| |