Consider the following function: ```cpp bool foo(int a, int b) { return (a + 1) || (a * b + b); } ``` Clang9 (and GCC) can simplify `foo`, but Clang trunk cannot. https://godbolt.org/z/nTj67b956