[llvm] [SLP][NFC] Remove useless code of deleting ExtractElementInst (PR #106697)

via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 30 09:19:16 PDT 2024


tcwzxx wrote:

```llvm ir
entry:
  %l = load <4 x i8>, ptr getelementptr (i8, ptr null, i32 8), align 1
  %li15 = extractelement <4 x i8> %l, i64 15
  %2 = icmp ne i8 %0, 0
  %3 = icmp ne i8 %1, 0
  %4 = icmp ne i8 %0, 0
  %.i15 = icmp ne i8 %li15, 0
  
  %i0244 = insertelement <4 x i1> zeroinitializer, i1 %2, i64 0
  %i1245 = insertelement <4 x i1> %i0244, i1 %3, i64 1
  %i2246 = insertelement <4 x i1> %i1245, i1 %4, i64 2
  %14 = insertelement <4 x i1> %i2246, i1 %.i15, i64 3
```


Here is an example IR. 

`adjustExtracts` will remove `%li15` since `%li15` has a single use in `icmp` (which is vectorized in a single node). But `removeInstructionsAndOperands` also removes `%li15`.

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


More information about the llvm-commits mailing list