diff options
author | David Green <david.green@arm.com> | 2023-01-09 11:52:37 +0000 |
---|---|---|
committer | David Green <david.green@arm.com> | 2023-01-09 11:52:37 +0000 |
commit | 07d6af6a71001c3d3a7aae21085646e642fbb56c (patch) | |
tree | daf0325147e0fe0ef381d18a1d9f64d9214dc302 /llvm/lib/IR/Attributes.cpp | |
parent | 6d839621da8d0d85552c741c4c72369b4ada97c4 (diff) | |
download | llvm-07d6af6a71001c3d3a7aae21085646e642fbb56c.zip llvm-07d6af6a71001c3d3a7aae21085646e642fbb56c.tar.gz llvm-07d6af6a71001c3d3a7aae21085646e642fbb56c.tar.bz2 |
[AArch64] Fold And/Or into CSel if possible
If we have `and x, (csel 0, 1, cc)` and we know that x is 0/1, then we
can emit a `csel ZR, x, cc`. Similarly for `or x, (csel 0, 1, cc)` we
can emit `csinc x, ZR, cc`. This can help where we can not otherwise
general ccmp instructions.
Differential Revision: https://reviews.llvm.org/D141119
Diffstat (limited to 'llvm/lib/IR/Attributes.cpp')
0 files changed, 0 insertions, 0 deletions