<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">