OSDN Git Service

[AArch64][GlobalISel] Fold G_SELECT cc, %t, (G_ADD %x, 1) -> CSINC %t, %x, cc
authorJessica Paquette <jpaquette@apple.com>
Tue, 8 Dec 2020 18:20:44 +0000 (10:20 -0800)
committerJessica Paquette <jpaquette@apple.com>
Tue, 8 Dec 2020 18:53:37 +0000 (10:53 -0800)
commit5b5d3fa9d9cf9e0b8904de0dc9ea5248f6a37ed1
tree7f8376509ad53178ed84e3577d0327923fb63da4
parent3bd2ad5a0828e956400393e3ea153c417f256aab
[AArch64][GlobalISel] Fold G_SELECT cc, %t, (G_ADD %x, 1) -> CSINC %t, %x, cc

This implements

```
G_SELECT cc, %true, (G_ADD %x, 1) -> CSINC %true, %x, cc
G_SELECT cc, (G_ADD %x, 1), %false -> CSINC %x, %false, inv_cc
```

Godbolt example: https://godbolt.org/z/eoPqKq

Differential Revision: https://reviews.llvm.org/D92868
llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
llvm/test/CodeGen/AArch64/GlobalISel/select-select.mir