summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/optional/optional.nullopt
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2017-01-24 17:03:24 +0000
committerSanjay Patel <spatel@rotateright.com>2017-01-24 17:03:24 +0000
commit562272536a018d4115db05fefa31718620071f91 (patch)
tree725b90fc3b5281eb7d631ee80083db454c6e863d /libcxx/test/std/utilities/optional/optional.nullopt
parent5bdb95c078e66344fd57ff8113c78748fc9eafc0 (diff)
downloadbcm5719-llvm-562272536a018d4115db05fefa31718620071f91.tar.gz
bcm5719-llvm-562272536a018d4115db05fefa31718620071f91.zip
[InstSimplify] try to eliminate icmp Pred (add nsw X, C1), C2
I was surprised to see that we're missing icmp folds based on 'add nsw' in InstCombine, but we should handle the InstSimplify cases first because that could make the InstCombine code simpler. Here are Alive-based proofs for the logic: Name: add_neg_constant Pre: C1 < 0 && (C2 > ((1<<(width(C1)-1)) + C1)) %a = add nsw i7 %x, C1 %b = icmp sgt %a, C2 => %b = false Name: add_pos_constant Pre: C1 > 0 && (C2 < ((1<<(width(C1)-1)) + C1 - 1)) %a = add nsw i6 %x, C1 %b = icmp slt %a, C2 => %b = false Name: nuw Pre: C1 u>= C2 %a = add nuw i11 %x, C1 %b = icmp ult %a, C2 => %b = false Differential Revision: https://reviews.llvm.org/D29053 llvm-svn: 292952
Diffstat (limited to 'libcxx/test/std/utilities/optional/optional.nullopt')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud