<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/134992>134992</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed optimization with the `unreachable` information
</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://gcc.gnu.org/onlinedocs/gcc-13.2.0/libstdc++/api/a00347_source.html.
More specifically, it comes from function ` _M_default_append` (line 635), and the `unreachable` information corresponds to line 644.
Missed optimization: `store i1 %2, ptr @v, align 1` --> `store i1 false, ptr @v, align 1`
alive2 proof: https://alive2.llvm.org/ce/z/PQDDf2
```llvm
@v = external global i1
define void @src(i8 %0) {
%2 = icmp ugt i8 %0, 5
store i1 %2, ptr @v, align 1
br i1 %2, label %4, label %3
3:
ret void
4:
unreachable
}
```
Godbolt: https://godbolt.org/z/Pxjvz8fxf
clang-trunk -O3 generates:
```llvm
define void @src(i8 %0) local_unnamed_addr #0 {
%2 = icmp ugt i8 %0, 5
store i1 %2, ptr @v, align 1
%3 = xor i1 %2, true
tail call void @llvm.assume(i1 %3)
ret void
}
```
>From the IR generated after clang optimization, it is possible that it can be fixed in the same way as #134540. If you can confirm that they are missed for the same reason, we would like to merge these two issues, thank you very much.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0VUGT4yYT_TX40mUVQrJlHXTw7HzemsPul2zl7kLQSOwgUAGyx_PrU6DJ7EwmqU0OcamsArofj_fUDQ9BDxaxI7s7srvf8CWOznefH75-3T5M86Z38tb9NiIoZ4y7ajuAR7kIlPDwDXQAiV5fUILyboIxxjmQ6kjYibDTIEQx2KVwfiDs5KzRFqUTYV3allXBCkrYyeg-RCkIu8vPic86_VNa1c05uMULLMY4mYLQ4xfnEcKMQistuDE3wj6BjiDchGEloRYronYWyJ7C-ctZouKLiWc-z2hlmiTskLjAvtoR1iYEbiXEEVPKYj1yMfLeYIrVVjk_8QwonPcYZmdlgOhgxajrxCtR0yGgBDdHPennnEGqY4IMMbHWJRC2Y2m7OXogNb3krY0eLJRpr-2WVP97l6C4Cfj3GYQeudEXZDB751Ta7r0F62phzGV6sUEgYadnwk6__Hp_r9hKPUHlJwWmcU0vQKp7wKeI3nIDg3E9N6DLNUGiSoe_OC0TreAFYQd9SAekhLVAmjtCj5APnIG0mGZYhgivQZ9gl0P-kTgpsPdvowzv0aRR_W5UrfyqrHzK8hgzzXW-TvP_6pdA3n4S9Eia-7eSrcCfneydiR8dGNaFF_Wz8E_fL88H9aTWTGG4HbbRL_YRtv-vYECLnkfMEB-t-Znyxgluzou1fEJ55lJ6IKyi_4kjSe-M9eTeeRP9koSCyLWBVKWvdPOHyENYJky0y9Uy1n6w6oPGp1TaqUQfvr1KJIGriB6yhO8Lb-0KOsDsQtC9QYgjj7lTcAs9gtJPKEHbjBn4hHDlN-AhqVVW9a6mBTwouLklZwhnlfbTihJHvAH3CNNa8sr5HzAeeVgJXBGubjESjH7E1DAm9EMiggEhXh3oEBYMWbGR28e82QX9DaZFjMVGdpVsq5ZvsCubui7bZsfoZux61vR1r1jftrKq9krsD6oSlWx2B7pvdvVGd4yyHa1pW5bloaYFLZt23zRVVVJUvG1ITXHi2rw2hk2m0pVV3bZsk6sp5CuBMYvXlShhLN0QvktJ234ZQjJUhxh-wEQdDXZ_0QnhquP48xa7Wbzp_lRAOo5LXwg3pasiFcH62s7efUcRCTv9oePphf-lY78HAAD__2FaEeI">