diff options
author | Akira Hatanaka <ahatanak@gmail.com> | 2011-04-01 17:39:08 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanak@gmail.com> | 2011-04-01 17:39:08 +0000 |
commit | 20ada98de82cb23c3f075acbb09436760ef0923c (patch) | |
tree | be1dcb4da58d79d3d69afb9cdb452069e6f55723 /test | |
parent | 0e3ee43ea058a35ab5ce69cceafd316d49eaad34 (diff) | |
download | external_llvm-20ada98de82cb23c3f075acbb09436760ef0923c.zip external_llvm-20ada98de82cb23c3f075acbb09436760ef0923c.tar.gz external_llvm-20ada98de82cb23c3f075acbb09436760ef0923c.tar.bz2 |
Add code for analyzing FP branches. Clean up branch Analysis functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128718 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/Mips/analyzebranch.ll | 46 | ||||
-rw-r--r-- | test/CodeGen/Mips/fpcmp.ll | 4 |
2 files changed, 48 insertions, 2 deletions
diff --git a/test/CodeGen/Mips/analyzebranch.ll b/test/CodeGen/Mips/analyzebranch.ll new file mode 100644 index 0000000..8f0bdf2 --- /dev/null +++ b/test/CodeGen/Mips/analyzebranch.ll @@ -0,0 +1,46 @@ +; RUN: llc -march=mips < %s | FileCheck %s + +define double @foo(double %a, double %b) nounwind readnone { +entry: +; CHECK: bc1f $BB0_2 +; CHECK: nop +; CHECK: # BB#1: + + %cmp = fcmp ogt double %a, 0.000000e+00 + br i1 %cmp, label %if.end6, label %if.else + +if.else: ; preds = %entry + %cmp3 = fcmp ogt double %b, 0.000000e+00 + br i1 %cmp3, label %if.end6, label %return + +if.end6: ; preds = %if.else, %entry + %c.0 = phi double [ %a, %entry ], [ 0.000000e+00, %if.else ] + %sub = fsub double %b, %c.0 + %mul = fmul double %sub, 2.000000e+00 + br label %return + +return: ; preds = %if.else, %if.end6 + %retval.0 = phi double [ %mul, %if.end6 ], [ 0.000000e+00, %if.else ] + ret double %retval.0 +} + +define void @f1(float %f) nounwind { +entry: +; CHECK: bc1t $BB1_2 +; CHECK: nop +; CHECK: # BB#1: + %cmp = fcmp une float %f, 0.000000e+00 + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + tail call void @abort() noreturn + unreachable + +if.end: ; preds = %entry + tail call void (...)* @f2() nounwind + ret void +} + +declare void @abort() noreturn nounwind + +declare void @f2(...) diff --git a/test/CodeGen/Mips/fpcmp.ll b/test/CodeGen/Mips/fpcmp.ll index 51d55f0..c89ffe6 100644 --- a/test/CodeGen/Mips/fpcmp.ll +++ b/test/CodeGen/Mips/fpcmp.ll @@ -10,9 +10,9 @@ entry: ; CHECK-MIPS32R2: c.olt.s ; CHECK-MIPS32R2: movt ; CHECK-MIPS1: c.olt.s -; CHECK-MIPS1: bc1f +; CHECK-MIPS1: bc1t ; CHECK-MIPS1: c.olt.s -; CHECK-MIPS1: bc1f +; CHECK-MIPS1: bc1t %cmp = fcmp olt float %f0, %f1 %conv = zext i1 %cmp to i32 %tmp2 = load i32* @g1, align 4 |