Testcase for r164835
authorManman Ren <mren@apple.com>
Fri, 28 Sep 2012 20:26:33 +0000 (20:26 +0000)
committerManman Ren <mren@apple.com>
Fri, 28 Sep 2012 20:26:33 +0000 (20:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164842 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/jump_sign.ll

index 0cf397d4af050248026f82a19348ed6d73fd9426..78d9e06f594038a3ab02e1a0e5d92306cb400b6f 100644 (file)
@@ -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
+}