From 4d1bb94c3ed71c42bf40467996ac142a6fb5e18f Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 12 Jan 2004 03:57:00 +0000 Subject: [PATCH] New testcase, allow folding of binary operators that use PHI nodes, as long as the result of the binary operator is always constant. This does not require the PHI itself to be constant though. llvm-svn: 10762 --- .../Regression/Transforms/SCCP/phitest.ll | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 llvm/test/Regression/Transforms/SCCP/phitest.ll diff --git a/llvm/test/Regression/Transforms/SCCP/phitest.ll b/llvm/test/Regression/Transforms/SCCP/phitest.ll new file mode 100644 index 000000000000..18f862a1a233 --- /dev/null +++ b/llvm/test/Regression/Transforms/SCCP/phitest.ll @@ -0,0 +1,23 @@ +; RUN: llvm-as < %s | opt -sccp -dce -simplifycfg | llvm-dis | not grep br + +int %test(int %param) { +entry: + %tmp.1 = setne int %param, 0 + br bool %tmp.1, label %endif.0, label %else + +else: + br label %endif.0 + +endif.0: + %a.0 = phi int [ 2, %else ], [ 3, %entry ] + %b.0 = phi int [ 3, %else ], [ 2, %entry ] + %tmp.5 = add int %a.0, %b.0 + %tmp.7 = setne int %tmp.5, 5 + br bool %tmp.7, label %UnifiedReturnBlock, label %endif.1 + +endif.1: + ret int 0 + +UnifiedReturnBlock: + ret int 2 +}