Add two test cases to cover apintification change.
authorZhou Sheng <zhousheng00@gmail.com>
Thu, 26 Apr 2007 16:44:48 +0000 (16:44 +0000)
committerZhou Sheng <zhousheng00@gmail.com>
Thu, 26 Apr 2007 16:44:48 +0000 (16:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36476 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll [new file with mode: 0644]
test/Analysis/ScalarEvolution/trip-count2.ll [new file with mode: 0644]

diff --git a/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll b/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll
new file mode 100644 (file)
index 0000000..aeaf356
--- /dev/null
@@ -0,0 +1,32 @@
+; RUN: llvm-as < %s | opt -analyze -scalar-evolution |& \
+; RUN:   grep {100 iterations}
+; PR1101
+
+@A = weak global [1000 x i32] zeroinitializer, align 32         
+
+
+define void @test(i32 %N) {
+entry:
+        "alloca point" = bitcast i32 0 to i32           ; <i32> [#uses=0]
+        br label %bb3
+
+bb:             ; preds = %bb3
+        %tmp = getelementptr [1000 x i32]* @A, i32 0, i32 %i.0          ; <i32*> [#uses=1]
+        store i32 123, i32* %tmp
+        %tmp2 = add i32 %i.0, 1         ; <i32> [#uses=1]
+        br label %bb3
+
+bb3:            ; preds = %bb, %entry
+        %i.0 = phi i32 [ 2, %entry ], [ %tmp2, %bb ]            ; <i32> [#uses=3]
+        %SQ = mul i32 %i.0, %i.0
+        %tmp4 = mul i32 %i.0, 2
+        %tmp5 = sub i32 %SQ, %tmp4
+        %tmp3 = icmp sle i32 %tmp5, 9999          ; <i1> [#uses=1]
+        br i1 %tmp3, label %bb, label %bb5
+
+bb5:            ; preds = %bb3
+        br label %return
+
+return:         ; preds = %bb5
+        ret void
+}
diff --git a/test/Analysis/ScalarEvolution/trip-count2.ll b/test/Analysis/ScalarEvolution/trip-count2.ll
new file mode 100644 (file)
index 0000000..e003c19
--- /dev/null
@@ -0,0 +1,35 @@
+; RUN: llvm-as < %s | opt -analyze -scalar-evolution |& \
+; RUN:   grep {4 iterations}
+; PR1101
+
+@A = weak global [1000 x i32] zeroinitializer, align 32         
+
+
+define void @test(i32 %N) {
+entry:
+        "alloca point" = bitcast i32 0 to i32           ; <i32> [#uses=0]
+        br label %bb3
+
+bb:             ; preds = %bb3
+        %tmp = getelementptr [1000 x i32]* @A, i32 0, i32 %i.0          ; <i32*> [#uses=1]
+        store i32 123, i32* %tmp
+        %tmp4 = mul i32 %i.0, 4         ; <i32> [#uses=1]
+        %tmp5 = or i32 %tmp4, 1
+        %tmp61 = xor i32 %tmp5, -2147483648
+        %tmp6 = trunc i32 %tmp61 to i16
+        %tmp71 = shl i16 %tmp6, 2
+        %tmp7 = zext i16 %tmp71 to i32
+        %tmp2 = add i32 %tmp7, %i.0
+        br label %bb3
+
+bb3:            ; preds = %bb, %entry
+        %i.0 = phi i32 [ 0, %entry ], [ %tmp2, %bb ]            ; <i32> [#uses=3]
+        %tmp3 = icmp sle i32 %i.0, 9999          ; <i1> [#uses=1]
+        br i1 %tmp3, label %bb, label %bb5
+
+bb5:            ; preds = %bb3
+        br label %return
+
+return:         ; preds = %bb5
+        ret void
+}