Re: [PATCH v7 16/31] rust: ptr: add const_align_up()

From: David Rheinsberg

Date: Fri Mar 20 2026 - 09:15:33 EST


Hi Alice!

On Fri, Mar 20, 2026, at 12:12 PM, Alice Ryhl wrote:
> On Fri, Mar 20, 2026 at 11:27 AM David Rheinsberg <david@xxxxxxxxxxxx> wrote:
>> align_up1:
>> lea rax, [rsi - 1]
>> and rax, rdi
>> sub rsi, rax
>> lea rdx, [rsi + rdi]
>> cmp rdx, rdi
>> setae cl
>> test rax, rax
>> sete al
>> cmove rdx, rdi
>> or al, cl
>> movzx eax, al
>> ret
>>
>> align_up2:
>> lea rdx, [rdi + rsi]
>> dec rdx
>> xor eax, eax
>> cmp rdx, rdi
>> setae al
>> neg rsi
>> and rdx, rsi
>> ret
>
> The conditional move instruction still seems worse as it breaks data
> dependencies in the cpu pipeline, right?

Oh yeah, it is definitely worse, but I think on an acceptable level. I would argue the cmove is a non-issue, because it is a reg<->reg move, but... meh, not sure I wanna dig deeper.

David