[SCEV] See through op.with.overflow intrinsics
authorSanjoy Das <sanjoy@playingwithpointers.com>
Sun, 10 Apr 2016 22:50:26 +0000 (22:50 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Sun, 10 Apr 2016 22:50:26 +0000 (22:50 +0000)
commit3c529a40ca55eb3a6bbf813cc023c158bc89116f
treee67c4254c48277736a301dd08586eb8915bb4c50
parent8497f488dd8840c303606da332832223e63e5d4d
[SCEV] See through op.with.overflow intrinsics

Summary:
This change teaches SCEV to see reduce `(extractvalue
0 (op.with.overflow X Y))` into `op X Y` (with a no-wrap tag if
possible).

Reviewers: atrick, regehr

Subscribers: mcrosier, mzolotukhin, llvm-commits

Differential Revision: http://reviews.llvm.org/D18684

llvm-svn: 265912
llvm/include/llvm/Analysis/ValueTracking.h
llvm/lib/Analysis/ScalarEvolution.cpp
llvm/lib/Analysis/ValueTracking.cpp
llvm/test/Analysis/ScalarEvolution/overflow-intrinsics.ll [new file with mode: 0644]