From fb5d561193d29501e06ed2e59cbe757bb8cd085a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 15 Mar 2004 04:10:08 +0000 Subject: [PATCH] New testcases to test LICM of call instructions llvm-svn: 12414 --- .../Transforms/LICM/call_sink_const_function.ll | 16 ++++++++++++++++ .../Transforms/LICM/call_sink_pure_function.ll | 14 ++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll create mode 100644 llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll diff --git a/llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll b/llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll new file mode 100644 index 000000000000..92e9244be6b1 --- /dev/null +++ b/llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll @@ -0,0 +1,16 @@ +; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 sin | grep Out: +declare double %sin(double) +declare void %foo() + +double %test(double %X) { + br label %Loop + +Loop: + call void %foo() ;; Unknown effects! + + %A = call double %sin(double %X) ;; Can still hoist/sink call + br bool true, label %Loop, label %Out + +Out: + ret double %A +} diff --git a/llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll b/llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll new file mode 100644 index 000000000000..d67436948bd0 --- /dev/null +++ b/llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 strlen | grep Out: +declare int %strlen(sbyte*) +declare void %foo() + +int %test(sbyte* %P) { + br label %Loop + +Loop: + %A = call int %strlen(sbyte* %P) ;; Can hoist/sink call + br bool false, label %Loop, label %Out + +Out: + ret int %A +}