<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/76636>76636</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
missed-optimization: combine switch statements
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
gooncreeper
</td>
</tr>
</table>
<pre>
```C
int unopt(int v) {
switch (v & 2) {
case 0: //0x
switch(v & 1) {
case 0: //00
return 643;
case 1: //01
return 223;
}
case 2: //1x
switch (v & 1) {
case 0: //10
return 444;
case 1: //11
return 532;
}
}
}
int opt(int v) {
switch (v & 3) {
case 0: //00
return 643;
case 1: //01
return 223;
case 2: //10
return 444;
case 3: //11
return 532;
}
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU9GOmzAQ_JrlxUpkr8GGBz_kGuU_DGwSV4AjbHJtv74iuYQegZ4OIWE0zLAzo7UhuFNHZCB7g2yf2CGefW9O3ndVT3ShPil9_duA4vf7B_A98J3rIhs6f4mA-Xi-AhYM9NsdZYyx8O5idWaA-ZUBKoYvX1Q2EOMgdwzwAHjgvyZsUngKiBeBRRH-GR-vnuLQd0ylEuQSXfxDF6t0xFc66P3MD05aYtEPWzM0dyLWnaRp-qUT8XDywckk_n_858t0eFb9naLl10XPnK30s9rNSiEv-S__Zh7ejSYXgvtMm-e3ENdjR5LayLqQhU3ICM1loVGrLDmb41GlFtXR1nmNVaa0KEhnoqxr1FWhVeIMcpQCJUeRKp5tC4skJao0r5XIjzmknFrrmm3TXNut70-JC2Ego5WSKmlsSU247TJiR-_sBgLiuNq9GTmbcjgFSHnjQgyTSnSxIdO6EKje-Et0rftjo_PdmEvl29J19Gg6RBuppS6GZOgbc47xEkDu7umdXDwP5bbyLeBhlP94bC69_0lVBDzchgqAh9vQfwMAAP__ShwoIA">