diff options
Diffstat (limited to 'test/Transforms/Inline/2008-03-04-StructRet.ll')
-rw-r--r-- | test/Transforms/Inline/2008-03-04-StructRet.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/Transforms/Inline/2008-03-04-StructRet.ll b/test/Transforms/Inline/2008-03-04-StructRet.ll new file mode 100644 index 0000000..3311d56 --- /dev/null +++ b/test/Transforms/Inline/2008-03-04-StructRet.ll @@ -0,0 +1,28 @@ +; RUN: opt < %s -inline -disable-output + %struct.Benchmark = type { i32 (...)** } + %struct.Complex = type { double, double } + %struct.ComplexBenchmark = type { %struct.Benchmark } + +define %struct.Complex @_Zml7ComplexS_1(double %a.0, double %a.1, double %b.0, double %b.1) nounwind { +entry: + %mrv = alloca %struct.Complex ; <%struct.Complex*> [#uses=2] + %mrv.gep = getelementptr %struct.Complex* %mrv, i32 0, i32 0 ; <double*> [#uses=1] + %mrv.ld = load double* %mrv.gep ; <double> [#uses=1] + %mrv.gep1 = getelementptr %struct.Complex* %mrv, i32 0, i32 1 ; <double*> [#uses=1] + %mrv.ld2 = load double* %mrv.gep1 ; <double> [#uses=1] + ret double %mrv.ld, double %mrv.ld2 +} + +define void @_ZNK16ComplexBenchmark9oop_styleEv(%struct.ComplexBenchmark* %this) nounwind { +entry: + %tmp = alloca %struct.Complex ; <%struct.Complex*> [#uses=0] + br label %bb31 +bb: ; preds = %bb31 + call %struct.Complex @_Zml7ComplexS_1( double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00 ) nounwind ; <%struct.Complex>:0 [#uses=1] + %gr = getresult %struct.Complex %0, 1 ; <double> [#uses=0] + br label %bb31 +bb31: ; preds = %bb, %entry + br i1 false, label %bb, label %return +return: ; preds = %bb31 + ret void +} |