Skip to content

two-instruction pass actually worsens codegen #135829

Open
@AZero13

Description

@AZero13

https://godbolt.org/z/vrexqnWoe

There is nothing wrong with:
add edi, esi
mov eax, edi
sub edi, edx
cmovnc eax, edi
ret

But the two-address pass makes it:

    lea     eax, [rdi + rsi]
    xor     ecx, ecx
    cmp     eax, edx
    cmovae  ecx, edx
    sub     eax, ecx
    ret

which is actually less optimal.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions