aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorRoman Lebedev <lebedev.ri@gmail.com>2020-09-21 17:16:08 +0300
committerRoman Lebedev <lebedev.ri@gmail.com>2020-09-21 20:25:53 +0300
commit1bb7ab8c4a324aa380bddfc75069e24c19e2bdd0 (patch)
treece15fdba0becc1812aaacccc905ec3813d6aade1 /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parent83c2d10d3cae57f71e23193d62989725b9b9f2f2 (diff)
downloadllvm-1bb7ab8c4a324aa380bddfc75069e24c19e2bdd0.zip
llvm-1bb7ab8c4a324aa380bddfc75069e24c19e2bdd0.tar.gz
llvm-1bb7ab8c4a324aa380bddfc75069e24c19e2bdd0.tar.bz2
[SCEV] Recognize @llvm.abs as smax(x, -x)
As per alive2 (ignoring undef): ---------------------------------------- define i32 @src(i32 %x, i1 %y) { %0: %r = abs i32 %x, 0 ret i32 %r } => define i32 @tgt(i32 %x, i1 %y) { %0: %neg_x = mul i32 %x, 4294967295 %r = smax i32 %x, %neg_x ret i32 %r } Transformation seems to be correct! ---------------------------------------- define i32 @src(i32 %x, i1 %y) { %0: %r = abs i32 %x, 1 ret i32 %r } => define i32 @tgt(i32 %x, i1 %y) { %0: %neg_x = mul nsw i32 %x, 4294967295 %r = smax i32 %x, %neg_x ret i32 %r } Transformation seems to be correct!
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions