New testcase for constant expression lowering pass, contributed by Vladimir Prus!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14398 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/Generic/ConstantExprLowering.llx b/test/CodeGen/Generic/ConstantExprLowering.llx
new file mode 100644
index 0000000..49002ad
--- /dev/null
+++ b/test/CodeGen/Generic/ConstantExprLowering.llx
@@ -0,0 +1,26 @@
+; RUN: llvm-as < %s | opt -lowerconstantexprs -disable-output
+
+%.str_1 = internal constant [16 x sbyte] c"%d %d %d %d %d\0A\00"
+
+%XA = external global int
+%XB = external global int
+
+implementation ; Functions:
+
+declare int %printf(sbyte*, ...)
+
+void %test(int %A, int %B, int %C, int %D) {
+entry:
+ %t1 = setlt int %A, 0
+ br bool %t1, label %less, label %not_less
+less:
+ br label %not_less
+not_less:
+ %t2 = phi int [ sub ( int cast (int* %XA to int),
+ int cast (int* %XB to int) ), %less],
+ [ sub ( int cast (int* %XA to int),
+ int cast (int* %XB to int) ), %entry]
+ %tmp.39 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([16 x sbyte]* %.str_1, long 0, long 0) ) ; <int> [#uses=0]
+ ret void
+}
+