diff options
Diffstat (limited to 'test/Transforms/InstCombine/fold-phi.ll')
-rw-r--r-- | test/Transforms/InstCombine/fold-phi.ll | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/test/Transforms/InstCombine/fold-phi.ll b/test/Transforms/InstCombine/fold-phi.ll index bd01d58aa5..c6bb1b3633 100644 --- a/test/Transforms/InstCombine/fold-phi.ll +++ b/test/Transforms/InstCombine/fold-phi.ll @@ -17,23 +17,23 @@ end: ret float %add5 } -; CHECK: fold_phi -define float @fold_phi(float %a) nounwind { +; CHECK-LABEL: @pr21377( +define void @pr21377(i32) { entry: - br label %for.body - -for.body: -; CHECK: phi float -; CHECK-NEXT: br i1 undef - %sum.057 = phi float [ 0.000000e+00, %entry ], [ %add5, %bb0 ] - %add5 = fadd float %sum.057, 1.0 ;; Should be moved to the latch! - br i1 undef, label %bb0, label %end - -; CHECK: bb0: -bb0: -; CHECK: fadd float - br label %for.body - -end: - ret float %add5 + br label %while.body + +while.body: ; preds = %if.end, %entry + %phi1 = phi i64 [ undef, %entry ], [ %or2, %if.end ] + %zext = zext i32 %0 to i64 + br i1 undef, label %if.end, label %if.else + +if.else: ; preds = %while.body + %or1 = or i64 %phi1, %zext + %and = and i64 %or1, 4294967295 + br label %if.end + +if.end: ; preds = %if.else, %while.body + %phi2 = phi i64 [ %and, %if.else ], [ undef, %while.body ] + %or2 = or i64 %phi2, %zext + br label %while.body } |