[GlobalISel] Combine (X op Y) == X --> Y == 0
authorJessica Paquette <jpaquette@apple.com>
Thu, 6 Oct 2022 18:03:43 +0000 (11:03 -0700)
committerJessica Paquette <jpaquette@apple.com>
Tue, 11 Oct 2022 16:52:48 +0000 (09:52 -0700)
commit036a13065b7a744efcc48cdc0bca3b878ed906fd
tree6fa3de27ffd9244dbd39cdd7d22b6383e9089b64
parent487695e7c99e340c59876853c000403c411af777
[GlobalISel] Combine (X op Y) == X --> Y == 0

This matches patterns of the form

```
(X op Y) == X
```

And transforms them to

```
Y == 0
```

where appropriate.

Example: https://godbolt.org/z/hfW811c7W

Differential Revision: https://reviews.llvm.org/D135380
llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
llvm/include/llvm/Target/GlobalISel/Combine.td
llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
llvm/test/CodeGen/AArch64/GlobalISel/combine-icmp-of-binop-to-icmp-of-0.mir [new file with mode: 0644]