New testcase identified by joel
authorChris Lattner <sabre@nondot.org>
Wed, 21 May 2003 19:48:33 +0000 (19:48 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 21 May 2003 19:48:33 +0000 (19:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6268 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/BasicAA/2003-05-21-GEP-Problem.ll [new file with mode: 0644]
test/Transforms/BasicAA/2003-05-21-GEP-Problem.ll [new file with mode: 0644]

diff --git a/test/Analysis/BasicAA/2003-05-21-GEP-Problem.ll b/test/Analysis/BasicAA/2003-05-21-GEP-Problem.ll
new file mode 100644 (file)
index 0000000..dfe8312
--- /dev/null
@@ -0,0 +1,26 @@
+; RUN: as < %s | opt -licm -disable-output
+target endian = big
+target pointersize = 64
+       %struct..apr_array_header_t = type { %struct..apr_pool_t*, int, int, int, sbyte* }
+       %struct..apr_pool_t = type opaque
+       %struct..apr_table_t = type { %struct..apr_array_header_t, uint, [32 x int], [32 x int] }
+
+implementation   ; Functions:
+
+void %table_reindex(%struct..apr_table_t* %t.1) {              ; No predecessors!
+       br label %loopentry
+
+loopentry:             ; preds = %0, %no_exit
+       %tmp.101 = getelementptr %struct..apr_table_t* %t.1, long 0, ubyte 0, ubyte 2           ; <int*> [#uses=1]
+       %tmp.11 = load int* %tmp.101            ; <int> [#uses=0]
+       br bool false, label %no_exit, label %UnifiedExitNode
+
+no_exit:               ; preds = %loopentry
+       %tmp.25 = cast int 0 to long            ; <long> [#uses=1]
+       %tmp.261 = getelementptr %struct..apr_table_t* %t.1, long 0, ubyte 3, long %tmp.25              ; <int*> [#uses=1]
+       store int 0, int* %tmp.261
+       br label %loopentry
+
+UnifiedExitNode:               ; preds = %loopentry
+       ret void
+}
diff --git a/test/Transforms/BasicAA/2003-05-21-GEP-Problem.ll b/test/Transforms/BasicAA/2003-05-21-GEP-Problem.ll
new file mode 100644 (file)
index 0000000..dfe8312
--- /dev/null
@@ -0,0 +1,26 @@
+; RUN: as < %s | opt -licm -disable-output
+target endian = big
+target pointersize = 64
+       %struct..apr_array_header_t = type { %struct..apr_pool_t*, int, int, int, sbyte* }
+       %struct..apr_pool_t = type opaque
+       %struct..apr_table_t = type { %struct..apr_array_header_t, uint, [32 x int], [32 x int] }
+
+implementation   ; Functions:
+
+void %table_reindex(%struct..apr_table_t* %t.1) {              ; No predecessors!
+       br label %loopentry
+
+loopentry:             ; preds = %0, %no_exit
+       %tmp.101 = getelementptr %struct..apr_table_t* %t.1, long 0, ubyte 0, ubyte 2           ; <int*> [#uses=1]
+       %tmp.11 = load int* %tmp.101            ; <int> [#uses=0]
+       br bool false, label %no_exit, label %UnifiedExitNode
+
+no_exit:               ; preds = %loopentry
+       %tmp.25 = cast int 0 to long            ; <long> [#uses=1]
+       %tmp.261 = getelementptr %struct..apr_table_t* %t.1, long 0, ubyte 3, long %tmp.25              ; <int*> [#uses=1]
+       store int 0, int* %tmp.261
+       br label %loopentry
+
+UnifiedExitNode:               ; preds = %loopentry
+       ret void
+}