Is it known lack of optimization?

```
bool foo(int a) {
int z;
if (a > 5) { z=1; } else { z=2; }
int y;
if (a > 10) {
// here z=1, so y = 2
y=z + 1;
} else {
// here z=1 or 2, so y = 3 or 4
y=z + 2;
}
// here y is either 2, 3 or 4
if (y == 5) {
// it is unreachable
return true;
} else {
return false;
}
}
```

clang 9.0.0 gives following asm (even with -O3) https://godbolt.org/z/3j3CqC

```
xor eax, eax
cmp edi, 5
setg al
xor ecx, ecx
cmp edi, 10
setg cl
add ecx, eax
neg ecx
cmp ecx, 1
sete al
ret
```

while gcc gives https://godbolt.org/z/PHhgUP

```
xor eax, eax
ret
```