<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/142593>142593</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed optimization: (xor (lshr i32 %0, 31), true) ? (%0 < 0) : false ==> false
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
GINN-Imp
</td>
</tr>
</table>
<pre>
The following reduced IR is derived from https://github.com/boostorg/geometry/blob/d2e5137f4070d8bbcd8ab150ad4fe42713c8ceb3/include/boost/geometry/algorithms/correct_closure.hpp#L56
Godbolt: https://godbolt.org/z/oW5b74jc4
alive2 proof: https://alive2.llvm.org/ce/z/QHnD7e
```llvm
define i1 @src(i32 %0, ptr writeonly captures(none) initializes((0, 4)) %p) local_unnamed_addr #0 {
common.ret1:
%.lobit = lshr i32 %0, 31
%1 = trunc nuw i32 %.lobit to i1
%2 = icmp slt i32 %0, 0
%not. = xor i1 %1, true
%common.ret1.op = select i1 %not., i1 %2, i1 false
store i32 %.lobit, ptr %p, align 1
ret i1 %common.ret1.op
}
```
expected:
```llvm
define i1 @tgt(i32 %0, ptr writeonly captures(none) initializes((0, 1)) %p) local_unnamed_addr #0 {
common.ret1:
%.lobit = lshr i32 %0, 31
store i32 %.lobit, ptr %p, align 1
ret i1 false
}
```
opt-trunk -O3 generates:
```llvm
define i1 @src(i32 %0, ptr writeonly captures(none) initializes((0, 4)) %p) local_unnamed_addr #0 {
common.ret1:
%.lobit = lshr i32 %0, 31
%1 = trunc nuw i32 %.lobit to i1
%2 = icmp slt i32 %0, 0
%not. = xor i1 %1, true
%common.ret1.op = select i1 %not., i1 %2, i1 false
store i32 %.lobit, ptr %p, align 1
ret i1 %common.ret1.op
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVVGL4zYQ_jWTF5Egj-w4fvCD77a5HrRXWgp9XGRp7OgqS0aSd2_31xfZyXW3PY5SSqFQMDjWfPNp9H2jjIzRjI6oheoNVHc7uaSLD-279x8-7N9P8673-qn9-UJs8Nb6R-NGFkgvijR7_xMzkWkK5oE0G4Kf2CWlOYLoAM-A59Gky9IflJ8Az733Mfkw5nXyE6XwlFet7wHPGqkqRD2UvOb61PdKn2RfVFzqcqAS60Kok6JeAJ6NU3bRdGN8TSft6INJlykCnpUPgVS6V9bHJdDhMs-A4rvqCLwD3r3zuvc2gej-WPYWOGzFPgOe_S9VX5cfVQm8k9Y8ELI5eD_8OXeLHqx9mK75iq4kP37r7mra9oYj354MBN5pGowjZgoGJY9BAZ6MQAZYccC3bE6BPQaTyDv7xJSc0xIoAp6cdwTYMONMMtKa53UV8LSmlYBNjgJWc35br6S9X5yTE-l7qXVggIIzqN8A75SfJu8OgVKRj8M7lhMP1vcmMRB3zMZLYC_LEsUNVayAFBanmFseb6hrcvLMfIbiCjVqmlm06RUfv2GcT4cV9smHVRSsigxIYaEb5kW5Bz-v6EiWVLomZI6cs33h9ecgbdwocjPS60JvUm96vWXSmtGxrfJAN-LXG2cz67uXlm4O06eZVCK9SflVv9OY_hm_i3_H77-n3E35L6rl57TP3fMr2_8g2EiOgkwU_4J4_1-W__Rl2elW6EY0ckdtUZenphJlVe8u7bFBlLrRhdaVKo6VKAfe4LEpiJQgJXemRY4VP3JRIJbF8XDk1CtVc031sWrKAUpOkzT285_xzsS4UFuUWDViZ2VPNq5jD9HRI1ujgJinYGhz0r5fxggltyam-DtNMslS-72JkTTzczKTeZbJeJfHAeAp-wB4-lIH5Ba7OpNbTZzZ2oEVZyCypetitwmfXVqfb7bv3RJs-5UBu96O7bWfg_9IKg_H9VR5Gl6P_dDibwEAAP__fqhRRQ">