Issue 179650
Summary [codegen] equivalent bit manipulation code produces different assembly
Labels new issue
Assignees
Reporter DenisYaroshevskiy
    On gobol: https://godbolt.org/z/ebj8rhqja

The following two options:

```
std::uint32_t option1(std::uint8_t vecHeader) {
 vecHeader >>= 4;
    if (vecHeader != 0xF) [[likely]] {
        return vecHeader;
    } else {
        return foo();
    }
}

std::uint32_t option2(std::uint8_t vecHeader) {
    if ((vecHeader & 0xF0) != 0xF0) [[likely]] {
        return vecHeader >> 4;
    } else {
        return foo();
    }
}
```

should result in the same assembly but they don't
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to