diff options
author | Dávid Bolvanský <david.bolvansky@gmail.com> | 2020-12-31 15:04:32 +0100 |
---|---|---|
committer | Dávid Bolvanský <david.bolvansky@gmail.com> | 2020-12-31 15:04:32 +0100 |
commit | ae69fa9b9f65f59cc0ca8c47f23748a53c8dbdc5 (patch) | |
tree | 3da849b22a4e47e48d439aa8d52d12babc35afb8 /llvm/lib/CodeGen/ReachingDefAnalysis.cpp | |
parent | c1937c2af2a03f0b5fda3bbf99e2971ffa04ff0c (diff) | |
download | llvm-ae69fa9b9f65f59cc0ca8c47f23748a53c8dbdc5.zip llvm-ae69fa9b9f65f59cc0ca8c47f23748a53c8dbdc5.tar.gz llvm-ae69fa9b9f65f59cc0ca8c47f23748a53c8dbdc5.tar.bz2 |
[InstCombine] Transform (A + B) - (A & B) to A | B (PR48604)
define i32 @src(i32 %x, i32 %y) {
%0:
%a = add i32 %x, %y
%o = and i32 %x, %y
%r = sub i32 %a, %o
ret i32 %r
}
=>
define i32 @tgt(i32 %x, i32 %y) {
%0:
%b = or i32 %x, %y
ret i32 %b
}
Transformation seems to be correct!
https://alive2.llvm.org/ce/z/2fhW6r
Diffstat (limited to 'llvm/lib/CodeGen/ReachingDefAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions