From cbb94f14067f574e835d25b0492e569b0bb9103a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 19 Apr 2008 22:32:52 +0000 Subject: rename *.llx -> *.ll, last batch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49971 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/GlobalOpt/storepointer-compare.ll | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/Transforms/GlobalOpt/storepointer-compare.ll (limited to 'test/Transforms/GlobalOpt/storepointer-compare.ll') diff --git a/test/Transforms/GlobalOpt/storepointer-compare.ll b/test/Transforms/GlobalOpt/storepointer-compare.ll new file mode 100644 index 0000000..86eff51 --- /dev/null +++ b/test/Transforms/GlobalOpt/storepointer-compare.ll @@ -0,0 +1,30 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \ +; RUN: grep {call void @Actual} + +; Check that a comparison does not prevent an indirect call from being made +; direct. The global will still remain, but indirect call elim is still good. + +@G = internal global void ()* null ; [#uses=2] + +define internal void @Actual() { + ret void +} + +define void @init() { + store void ()* @Actual, void ()** @G + ret void +} + +define void @doit() { + %FP = load void ()** @G ; [#uses=2] + %CC = icmp eq void ()* %FP, null ; [#uses=1] + br i1 %CC, label %isNull, label %DoCall + +DoCall: ; preds = %0 + call void %FP( ) + ret void + +isNull: ; preds = %0 + ret void +} + -- cgit v1.1