llvm-project/llvm/lib/Transforms
Dávid Bolvanský 3a696f6092 [InstCombine] rotate(X,Z) eq/ne rotate(Y,Z) ---> X eq/ne Y (PR51565)
```

----------------------------------------
define i1 @src(i8 %x, i8 %y, i8 %z) {
%0:
  %f = fshl i8 %x, i8 %x, i8 %z
  %f2 = fshl i8 %y, i8 %y, i8 %z
  %r = icmp eq i8 %f, %f2
  ret i1 %r
}
=>
define i1 @tgt(i8 %x, i8 %y, i8 %z) {
%0:
  %r = icmp eq i8 %x, %y
  ret i1 %r
}
Transformation seems to be correct!

```

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

Solves PR51565

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D109271
2021-09-04 18:58:44 +02:00
..
AggressiveInstCombine [AggressiveInstCombine] Add arithmetic shift right instr to `TruncInstCombine` DAG 2021-08-24 10:41:16 +03:00
CFGuard llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Coroutines [Coroutines] Only run verifyFunction in debug mode 2021-09-02 17:35:01 -07:00
Hello
IPO [ForceFunctionAttrs] Add const (NFC) 2021-09-03 22:29:58 -07:00
InstCombine [InstCombine] rotate(X,Z) eq/ne rotate(Y,Z) ---> X eq/ne Y (PR51565) 2021-09-04 18:58:44 +02:00
Instrumentation [hwasan] Support more complicated lifetimes. 2021-09-03 10:29:50 +01:00
ObjCARC [ObjC][ARC] Don't form a StoreStrong call if it is unsafe to move the 2021-08-11 13:50:19 -07:00
Scalar [SimpleLoopUnswitch] Inform pass manager when child loops are deleted 2021-09-04 17:54:39 +02:00
Utils [runtimeunroll] Support epilogue unrolling with a parent loop 2021-09-02 16:29:20 -07:00
Vectorize [IVDescriptors] Make pointer inductions compatible with opaque pointers 2021-09-01 21:02:05 +02:00
CMakeLists.txt [NewPM][HelloWorld] Move HelloWorld to Utils 2021-02-03 12:59:40 -08:00