diff options
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll')
-rw-r--r-- | llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll b/llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll new file mode 100644 index 00000000000..5ee13526785 --- /dev/null +++ b/llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll @@ -0,0 +1,43 @@ +; RUN: llvm-as < %s | opt -simplifycfg -disable-output +; rdar://5882392 +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +target triple = "x86_64-apple-darwin9" + %struct.Py_complex = type { double, double } + +define %struct.Py_complex @_Py_c_pow(double %a.0, double %a.1, double %b.0, double %b.1) nounwind { +entry: + %tmp7 = fcmp une double %b.0, 0.000000e+00 ; <i1> [#uses=1] + %tmp11 = fcmp une double %b.1, 0.000000e+00 ; <i1> [#uses=1] + %bothcond = or i1 %tmp7, %tmp11 ; <i1> [#uses=1] + br i1 %bothcond, label %bb15, label %bb53 + +bb15: ; preds = %entry + %tmp18 = fcmp une double %a.0, 0.000000e+00 ; <i1> [#uses=1] + %tmp24 = fcmp une double %a.1, 0.000000e+00 ; <i1> [#uses=1] + %bothcond1 = or i1 %tmp18, %tmp24 ; <i1> [#uses=1] + br i1 %bothcond1, label %bb29, label %bb27 + +bb27: ; preds = %bb15 + %tmp28 = call i32* @__error( ) nounwind ; <i32*> [#uses=1] + store i32 33, i32* %tmp28, align 4 + ret double undef, double undef + +bb29: ; preds = %bb15 + %tmp36 = fcmp une double %b.1, 0.000000e+00 ; <i1> [#uses=1] + br i1 %tmp36, label %bb39, label %bb47 + +bb39: ; preds = %bb29 + br label %bb47 + +bb47: ; preds = %bb39, %bb29 + ret double undef, double undef + +bb53: ; preds = %entry + ret double undef, double undef +} + +declare i32* @__error() + +declare double @pow(double, double) nounwind readonly + +declare double @cos(double) nounwind readonly |