[llvm] [SelectionDAG] Fix bug related to demanded bits/elts for BITCAST (PR #139085)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed May 14 08:18:45 PDT 2025


RKSimon wrote:

So this is what we're fighting I guess? https://alive2.llvm.org/ce/z/rqp6yU

```
----------------------------------------
define i8 @src1(<2 x i4> %a0, i4 %a1) {
#0:
  %v = insertelement <2 x i4> %a0, i4 %a1, i32 0
  %b = bitcast <2 x i4> %v to i8
  %a = and i8 %b, 240
  ret i8 %a
}
=>
define i8 @tgt1(<2 x i4> %a0, i4 %a1) {
#0:
  %b = bitcast <2 x i4> %a0 to i8
  %a = and i8 %b, 240
  ret i8 %a
}
Transformation doesn't verify!
----------------------------------------
define i8 @src2(<2 x i4> %a0, i4 %a1) {
#0:
  %v = insertelement <2 x i4> %a0, i4 %a1, i32 0
  %b = bitcast <2 x i4> %v to i8
  %a = and i8 %b, 240
  ret i8 %a
}
=>
define i8 @tgt2(<2 x i4> %a0, i4 %a1) {
#0:
  %v = insertelement <2 x i4> %a0, i4 0, i32 0
  %b = bitcast <2 x i4> %v to i8
  ret i8 %b
}
```

https://github.com/llvm/llvm-project/pull/139085


More information about the llvm-commits mailing list