diff options
Diffstat (limited to 'test/CodeGen/ARM/machine-cse-cmp.ll')
| -rw-r--r-- | test/CodeGen/ARM/machine-cse-cmp.ll | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/test/CodeGen/ARM/machine-cse-cmp.ll b/test/CodeGen/ARM/machine-cse-cmp.ll deleted file mode 100644 index 611cba6ed1fc..000000000000 --- a/test/CodeGen/ARM/machine-cse-cmp.ll +++ /dev/null @@ -1,79 +0,0 @@ -; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s -;rdar://8003725 - -@G1 = external global i32 -@G2 = external global i32 - -define i32 @f1(i32 %cond1, i32 %x1, i32 %x2, i32 %x3) { -entry: -; CHECK-LABEL: f1: -; CHECK: cmp -; CHECK: moveq -; CHECK-NOT: cmp -; CHECK: mov{{eq|ne}} - %tmp1 = icmp eq i32 %cond1, 0 - %tmp2 = select i1 %tmp1, i32 %x1, i32 %x2 - %tmp3 = select i1 %tmp1, i32 %x2, i32 %x3 - %tmp4 = add i32 %tmp2, %tmp3 - ret i32 %tmp4 -} - -@foo = external global i32 -@bar = external global [250 x i8], align 1 - -; CSE of cmp across BB boundary -; rdar://10660865 -define void @f2() nounwind ssp { -entry: -; CHECK-LABEL: f2: -; CHECK: cmp -; CHECK: bxlt -; CHECK-NOT: cmp -; CHECK: movle - %0 = load i32, i32* @foo, align 4 - %cmp28 = icmp sgt i32 %0, 0 - br i1 %cmp28, label %for.body.lr.ph, label %for.cond1.preheader - -for.body.lr.ph: ; preds = %entry - %1 = icmp sgt i32 %0, 1 - %smax = select i1 %1, i32 %0, i32 1 - call void @llvm.memset.p0i8.i32(i8* getelementptr inbounds ([250 x i8], [250 x i8]* @bar, i32 0, i32 0), i8 0, i32 %smax, i32 1, i1 false) - unreachable - -for.cond1.preheader: ; preds = %entry - ret void -} - -declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind - -; rdar://12462006 -define i8* @f3(i8* %base, i32* nocapture %offset, i32 %size) nounwind { -entry: -; CHECK-LABEL: f3: -; CHECK-NOT: sub -; CHECK: cmp -; CHECK: blt -%0 = load i32, i32* %offset, align 4 -%cmp = icmp slt i32 %0, %size -%s = sub nsw i32 %0, %size -%size2 = sub nsw i32 %size, 0 -br i1 %cmp, label %return, label %if.end - -if.end: -; We are checking cse between %sub here and %s in entry block. -%sub = sub nsw i32 %0, %size2 -%s2 = sub nsw i32 %s, %size -%s3 = sub nsw i32 %sub, %s2 -; CHECK: sub [[R1:r[0-9]+]], [[R2:r[0-9]+]], r2 -; CHECK: sub [[R3:r[0-9]+]], [[R1]], r2 -; CHECK: sub [[R4:r[0-9]+]], [[R1]], [[R3]] -; CHECK-NOT: sub -; CHECK: str -store i32 %s3, i32* %offset, align 4 -%add.ptr = getelementptr inbounds i8, i8* %base, i32 %sub -br label %return - -return: -%retval.0 = phi i8* [ %add.ptr, %if.end ], [ null, %entry ] -ret i8* %retval.0 -} |
