summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f9ec8fe)
raw | patch | inline | side by side (parent: f9ec8fe)
author | Nick Lewycky <nicholas@mxc.ca> | |
Thu, 19 Jun 2014 03:28:28 +0000 (03:28 +0000) | ||
committer | Nick Lewycky <nicholas@mxc.ca> | |
Thu, 19 Jun 2014 03:28:28 +0000 (03:28 +0000) |
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211250 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineShifts.cpp | patch | blob | history |
diff --git a/lib/Transforms/InstCombine/InstCombineShifts.cpp b/lib/Transforms/InstCombine/InstCombineShifts.cpp
index cc6665c947d768c78aab4ed5320023890e2af8ec..2495747da5fe6321fce069fed8915009ccaea352 100644 (file)
// have a sign-extend idiom.
Value *X;
if (match(Op0, m_Shl(m_Value(X), m_Specific(Op1)))) {
- // If the left shift is just shifting out partial signbits, delete the
- // extension.
- if (cast<OverflowingBinaryOperator>(Op0)->hasNoSignedWrap())
- return ReplaceInstUsesWith(I, X);
-
// If the input is an extension from the shifted amount value, e.g.
// %x = zext i8 %A to i32
// %y = shl i32 %x, 24