<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/88291>88291</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [InstCombine] Failure to truncate bitreverse 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:instcombine,
            missed-optimization
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          RKSimon
      </td>
    </tr>
</table>

<pre>
    Two examples (there may be others):

https://alive2.llvm.org/ce/z/NXea2D

```
define i8 @src(i8 %x) {
#0:
  %conv2 = zext i8 %x to i32
  %elt.bitreverse = bitreverse i32 %conv2
  %shr = lshr exact i32 %elt.bitreverse, 24
 %conv1 = trunc i32 %shr to i8
  ret i8 %conv1
}
=>
define i8 @tgt(i8 %x) {
#0:
  %bitreverse = bitreverse i8 %x
  ret i8 %bitreverse
}
Transformation seems to be correct!
```

https://alive2.llvm.org/ce/z/jbRPfa

```
define i8 @src(i16 %x) {
#0:
  %hi = lshr i16 %x, 8
  %conv1 = trunc i16 %hi to i8
  %bitreverse = bitreverse i8 %conv1
  ret i8 %bitreverse
}
=>
define i8 @tgt(i16 %x) {
#0:
  %bitreverse = bitreverse i16 %x
  %conv1 = trunc i16 %bitreverse to i8
  ret i8 %conv1
}
Transformation seems to be correct!
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVF9vmzAQ_zTHi9UIzvx94KENQ5omTVPXh70aOIIrwJFtsrSffsIlLdmqNpkUJTi-3_n357AwRu5GohyiO4gKT0y2Uzq___ZTDmr0KtU85Q-_FaOjGPY9GQaY2o40sUE8sYqYmlcGMAN-C34B_vLdWbs3839YApailwfCTd8fho3SO8CyJsDyGbD8_osEFmsoxP7yccuGWjkSkymD0De6BkznZ4yOgBmD5G5BIfdfObB5v1bjARnwgj3T0bIFxKxikuOqjnq7qaTVdCBtyAFWS8nxtdkKZDrtKvv5gY6itqfK83aAW4bhAlz6BA5p9TTWJ9DcZSaWno7QdGLsEIvG5GQUL4B_eccfu7MX-_OB5gX_D5eVrnNCD1qMplV6EFaqkRmiwcyCKmK10ppqCxi8G--V4_JY3f9oxZXjEsSX-NHJt0TfIFuW_jVTZ_G91HXyPL0L3F3FepHDn0V-mcYPWJ0afCp2BbpiZP9nQrwm503GM-FRHiQBJnGcZInX5TwOOWY-CR4EYSCaNs6a1A8iEYetIAw9maOPoR8GfhBzHvBN3WDYplET1n7Co7iF0KdByP51yDxpzER5mmIWeL2oqDfuUkScK4DfytHYWg2VHAkQAbeAOEhjqLlReysH-eyUzXtR4el8ht1U085A6PfSWPN2lJW2d1fu19HY7dIzKlgpZD9pZ6tzXFhaR-RNus_P35SdtN1UbWo1AJaO6MvPzV6rR-dp6XQZwNJJ-xMAAP__aYG0Qg">