diff options
| author | Jessica Paquette <jpaquette@apple.com> | 2020-09-18 10:46:48 -0700 |
|---|---|---|
| committer | Jessica Paquette <jpaquette@apple.com> | 2020-09-28 10:08:14 -0700 |
| commit | a52e78012a548c231fb8cba81861f6ffb2246726 (patch) | |
| tree | bf3254d6b126d8c0575b21be4ce376a608cd4d6f /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | ad4f11a9d38339848318b4a476a8d3d53a7d1f3f (diff) | |
[GlobalISel] Combine (xor (and x, y), y) -> (and (not x), y)
When we see this:
```
%and = G_AND %x, %y
%xor = G_XOR %and, %y
```
Produce this:
```
%not = G_XOR %x, -1
%new_and = G_AND %not, %y
```
as long as we are guaranteed to eliminate the original G_AND.
Also matches all commuted forms. E.g.
```
%and = G_AND %y, %x
%xor = G_XOR %y, %and
```
will be matched as well.
Differential Revision: https://reviews.llvm.org/D88104
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
