Regression test for the Instruction Combining optimizization.
authorJohn Criswell <criswell@uiuc.edu>
Mon, 21 Jul 2003 19:41:51 +0000 (19:41 +0000)
committerJohn Criswell <criswell@uiuc.edu>
Mon, 21 Jul 2003 19:41:51 +0000 (19:41 +0000)
This test helps to see if the optimization correctly handles variables that
are declared constant and external.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7215 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll [new file with mode: 0644]

diff --git a/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll b/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll
new file mode 100644 (file)
index 0000000..a98a68e
--- /dev/null
@@ -0,0 +1,46 @@
+;
+; Test: ExternalConstant
+;
+; Description:
+;      This regression test helps check whether the instruction combining
+;      optimization pass correctly handles global variables which are marked
+;      as external and constant.
+;
+;      If a problem occurs, we should die on an assert().  Otherwise, we
+;      should pass through the optimizer without failure.
+;
+; Extra code:
+; RUN: as < %s | opt -instcombine
+;
+
+target endian = little
+target pointersize = 32
+%silly = external constant int         ; <int*> [#uses=1]
+
+implementation   ; Functions:
+
+declare void %bzero(sbyte*, uint)
+
+declare void %bcopy(sbyte*, sbyte*, uint)
+
+declare int %bcmp(sbyte*, sbyte*, uint)
+
+declare int %fputs(sbyte*, sbyte*)
+
+declare int %fputs_unlocked(sbyte*, sbyte*)
+
+int %function(int %a.1) {
+entry:         ; No predecessors!
+       %a.0 = alloca int               ; <int*> [#uses=2]
+       %result = alloca int            ; <int*> [#uses=2]
+       store int %a.1, int* %a.0
+       %tmp.0 = load int* %a.0         ; <int> [#uses=1]
+       %tmp.1 = load int* %silly               ; <int> [#uses=1]
+       %tmp.2 = add int %tmp.0, %tmp.1         ; <int> [#uses=1]
+       store int %tmp.2, int* %result
+       br label %return
+
+return:                ; preds = %entry
+       %tmp.3 = load int* %result              ; <int> [#uses=1]
+       ret int %tmp.3
+}