diff options
author | Kazu Hirata <kazu@google.com> | 2020-08-11 14:13:26 -0700 |
---|---|---|
committer | Kazu Hirata <kazu@google.com> | 2020-08-11 14:13:32 -0700 |
commit | cfdc96714bdfeabea31b1f4d2e0c65e424933994 (patch) | |
tree | 7c36d03a668a98f2314d4ab6d444b27db44e6a41 /llvm/lib/Support/Compression.cpp | |
parent | 29429d1a443a51d0e1ac4ef4033a2bcc95909ba3 (diff) | |
download | llvm-cfdc96714bdfeabea31b1f4d2e0c65e424933994.zip llvm-cfdc96714bdfeabea31b1f4d2e0c65e424933994.tar.gz llvm-cfdc96714bdfeabea31b1f4d2e0c65e424933994.tar.bz2 |
[Instcombine] Fix uses of undef (PR46940)
Without this patch, we attempt to distribute And over Xor even in
unsafe circumstances like so:
undef & (true ^ true) ==> (undef & true) ^ (undef & true)
and evaluate it to undef instead of false. Note that "true ^ true"
may show up implicitly with one true being part of a PHI node.
This patch fixes the problem by teaching SimplifyUsingDistributiveLaws
to not use undef as part of simplifications.
Reviewers: spatel, aqjune, nikic, lebedev.ri, fhahn, jdoerfert
Differential Revision: https://reviews.llvm.org/D85687
Diffstat (limited to 'llvm/lib/Support/Compression.cpp')
0 files changed, 0 insertions, 0 deletions