diff options
author | Manman Ren <mren@apple.com> | 2012-09-28 20:26:33 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2012-09-28 20:26:33 +0000 |
commit | 284c1004f754940ea5848cd35b7604feb13f46b3 (patch) | |
tree | 432308deb326e3549d7792f222a31934eade855e /test/CodeGen/X86/jump_sign.ll | |
parent | e91ff1d135fb6b03e8bd9c8a09a67570bae583ad (diff) |
Testcase for r164835
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164842 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/jump_sign.ll')
-rw-r--r-- | test/CodeGen/X86/jump_sign.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CodeGen/X86/jump_sign.ll b/test/CodeGen/X86/jump_sign.ll index 0cf397d4af..78d9e06f59 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 +} |