aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/crash.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-01-04 18:19:15 +0000
committerChris Lattner <sabre@nondot.org>2011-01-04 18:19:15 +0000
commit43b40a4620c155c73ac71b48472ea2411d7c35da (patch)
tree2a91e31af838065b7c2a32dd1ad73b215b810faa /test/Transforms/InstCombine/crash.ll
parentba64b9706a1f83e8388c3c722953de16d102de27 (diff)
fix an off-by-one bug that caused a crash analyzing
ashr's with huge shift amounts, PR8896 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122814 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine/crash.ll')
-rw-r--r--test/Transforms/InstCombine/crash.ll37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/crash.ll b/test/Transforms/InstCombine/crash.ll
index deb7277c5e..60cb747787 100644
--- a/test/Transforms/InstCombine/crash.ll
+++ b/test/Transforms/InstCombine/crash.ll
@@ -298,3 +298,40 @@ entry:
}
+; PR8896
+@g_54 = external global [7 x i16]
+
+define void @test15(i32* %p_92) nounwind {
+entry:
+%0 = load i32* %p_92, align 4
+%1 = icmp ne i32 %0, 0
+%2 = zext i1 %1 to i32
+%3 = call i32 @func_14() nounwind
+%4 = trunc i32 %3 to i16
+%5 = sext i16 %4 to i32
+%6 = trunc i32 %5 to i16
+br i1 undef, label %"3", label %"5"
+
+"3": ; preds = %entry
+%7 = sext i16 %6 to i32
+%8 = ashr i32 %7, -1649554541
+%9 = trunc i32 %8 to i16
+br label %"5"
+
+"5": ; preds = %"3", %entry
+%10 = phi i16 [ %9, %"3" ], [ %6, %entry ]
+%11 = sext i16 %10 to i32
+%12 = xor i32 %2, %11
+%13 = sext i32 %12 to i64
+%14 = icmp ne i64 %13, 0
+br i1 %14, label %return, label %"7"
+
+"7": ; preds = %"5"
+ret void
+
+return: ; preds = %"5"
+ret void
+}
+
+declare i32 @func_14()
+