diff options
| author | Craig Topper <craig.topper@intel.com> | 2017-06-22 16:23:30 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2017-06-22 16:23:30 +0000 |
| commit | dffbbcb3fd42124842a8ae2cae18d40874d81f0b (patch) | |
| tree | c93a55597568ce81a9a497d1af6afd5f44068471 /llvm/test/CodeGen/AMDGPU/fdiv.f16.ll | |
| parent | a690e3cea23b17715fdbcecb24ae634ebc103fa5 (diff) | |
| download | bcm5719-llvm-dffbbcb3fd42124842a8ae2cae18d40874d81f0b.tar.gz bcm5719-llvm-dffbbcb3fd42124842a8ae2cae18d40874d81f0b.zip | |
[InstCombine] Teach foldSelectICmpAndOr to recognize (select (icmp slt (trunc (X)), 0), Y, (or Y, C2))
Summary:
InstCombine likes to turn (icmp eq (and X, C1), 0) into (icmp slt (trunc (X)), 0) sometimes. This breaks foldSelectICmpAndOr's ability to recognize (select (icmp eq (and X, C1), 0), Y, (or Y, C2))->(or (shl (and X, C1), C3), y).
This patch tries to recover this. I had to flip around some of the early out checks so that I could create a new And instruction during the compare processing without it possibly never getting used.
Reviewers: spatel, majnemer, davide
Reviewed By: spatel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D34184
llvm-svn: 306029
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU/fdiv.f16.ll')
0 files changed, 0 insertions, 0 deletions

