From 284c1004f754940ea5848cd35b7604feb13f46b3 Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Fri, 28 Sep 2012 20:26:33 +0000 Subject: [PATCH] Testcase for r164835 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164842 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/jump_sign.ll | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/CodeGen/X86/jump_sign.ll b/test/CodeGen/X86/jump_sign.ll index 0cf397d4af0..78d9e06f594 100644 --- a/test/CodeGen/X86/jump_sign.ll +++ b/test/CodeGen/X86/jump_sign.ll @@ -278,3 +278,31 @@ entry: %cond = select i1 %cmp, i32 %add, i32 0 ret i32 %cond } + +; PR13966 +@b = common global i32 0, align 4 +@a = common global i32 0, align 4 +define i32 @test1(i32 %p1) nounwind uwtable { +entry: +; CHECK: test1: +; CHECK: testb +; CHECK: j +; CHECK: ret + %0 = load i32* @b, align 4 + %cmp = icmp ult i32 %0, %p1 + %conv = zext i1 %cmp to i32 + %1 = load i32* @a, align 4 + %and = and i32 %conv, %1 + %conv1 = trunc i32 %and to i8 + %2 = urem i8 %conv1, 3 + %tobool = icmp eq i8 %2, 0 + br i1 %tobool, label %if.end, label %if.then + +if.then: + %dec = add nsw i32 %1, -1 + store i32 %dec, i32* @a, align 4 + br label %if.end + +if.end: + ret i32 undef +}