<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/67843>67843</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed optimization
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ojeda
</td>
</tr>
</table>
<pre>
From: https://github.com/rust-lang/rust/issues/116272
```llvm
@switch.table.src = private unnamed_addr constant [3 x i32] [i32 255, i32 0, i32 1], align 4
define i32 @src(i8) {
%switch.tableidx = add i8 %0, 1
%2 = sext i8 %switch.tableidx to i64
%switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.src, i64 0, i64 %2
%switch.load = load i32, ptr %switch.gep, align 4
ret i32 %switch.load
}
define i32 @tgt(i8) {
%_2 = zext i8 %0 to i32
ret i32 %_2
}
```
https://alive2.llvm.org/ce/z/rjWCBw
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8U09voz4Q_TTDxWoEY0PgwKFpxO13_h0rg6fElbEj27TdfvqVnWSbNN2VojB4_rznxzwZgp4tUQ_1Dup9Idd4cL53r6RkMTr1qx-8W4A_skOMxwD8EXAAHGYdD-u4mdwCOPg1xAcj7XyOAQcdwkoBcKiqBrcI5R7Kx_N_U55-xrwt5yNRhncdp8MmytHQJviJAd-zo9dvMhJbrZULqWeplGeTsyFKGxnUO84-mOYI9T69aY4M6xrwKR2y8hJUUO9TLI2eLRPXZBS9aEu5KpHwE2CrW8COwXZ3KmEMsL6mp9VHZieVYrpN2YxUXZVjLgj0Ec8V3_ujY7oR9wAzHXPrTJEMLWTjMXqm7ehWq8LtlRNoyv6gXr55I84SNCJzukczTqoMl4M09TLymtCddIx5iifNbkadhd3u_65wnOO9woD180mxzy_FyqwRxx8gn_E70mWlroFvF1Ya_Ua4STu3cT5t6kSAw2da2df_n3bvheq56ngnC-qrpmvKCkXFi0MvRuzaTrVV9SJ403XEt7yVbT2pSSlRdYXusURedthVLeecb1pqpSpxFLKrG2w5iJIWqc0f9CLbo2-2reCFkSOZkA2IaOmd5SRg-sSF71PPw7jOAURpdIjha0rU0VD_nw6BFHPHqBf9KaN2tli96f9h2Oy80-Ph6N0rTTeezbx-BwAA__9BQDBp">