summaryrefslogtreecommitdiff
path: root/test/Transforms/LoopIdiom
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/LoopIdiom')
-rw-r--r--test/Transforms/LoopIdiom/basic.ll22
-rw-r--r--test/Transforms/LoopIdiom/memmove.ll42
-rw-r--r--test/Transforms/LoopIdiom/memset_noidiom.ll53
-rw-r--r--test/Transforms/LoopIdiom/multi-dimensional.ll49
-rw-r--r--test/Transforms/LoopIdiom/sideeffect.ll53
5 files changed, 1 insertions, 218 deletions
diff --git a/test/Transforms/LoopIdiom/basic.ll b/test/Transforms/LoopIdiom/basic.ll
index 5afc405fa6..46ab7e5542 100644
--- a/test/Transforms/LoopIdiom/basic.ll
+++ b/test/Transforms/LoopIdiom/basic.ll
@@ -383,26 +383,4 @@ for.end: ; preds = %for.inc
}
-@p = common global [1024 x i8] zeroinitializer, align 16
-define void @test15(i32 %n) nounwind {
-entry:
- %cmp6 = icmp eq i32 %n, 0
- br i1 %cmp6, label %for.end, label %for.body
-
-for.body: ; preds = %entry, %for.body
- %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
- %indvars.iv.next = add i64 %indvars.iv, 1
- %arrayidx = getelementptr inbounds [1024 x i8]* @p, i64 0, i64 %indvars.iv.next
- %0 = load i8* %arrayidx, align 1
- %arrayidx2 = getelementptr inbounds [1024 x i8]* @p, i64 0, i64 %indvars.iv
- store i8 %0, i8* %arrayidx2, align 1
- %lftr.wideiv = trunc i64 %indvars.iv.next to i32
- %exitcond = icmp eq i32 %lftr.wideiv, %n
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end: ; preds = %for.body, %entry
- ret void
-; CHECK: @test15
-; CHECK: call void @llvm.memmove.p0i8.p0i8.i64(i8* getelementptr inbounds ([1024 x i8]* @p, i32 0, i32 0), i8* getelementptr inbounds ([1024 x i8]* @p, i64 0, i64 1),
-}
diff --git a/test/Transforms/LoopIdiom/memmove.ll b/test/Transforms/LoopIdiom/memmove.ll
deleted file mode 100644
index bfa0902a0d..0000000000
--- a/test/Transforms/LoopIdiom/memmove.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: opt -S -basicaa -loop-idiom < %s | FileCheck %s
-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-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.8.0"
-
-declare i64 @foo() nounwind
-
-; Nested loops
-define void @test1(i8* nocapture %A, i64 %n) nounwind {
-entry:
- %call8 = tail call i64 @foo() nounwind
- %tobool9 = icmp eq i64 %call8, 0
- br i1 %tobool9, label %while.end, label %for.cond.preheader.lr.ph
-
-for.cond.preheader.lr.ph: ; preds = %entry
- %cmp6 = icmp eq i64 %n, 0
- br label %for.cond.preheader
-
-while.cond.loopexit: ; preds = %for.body, %for.cond.preheader
- %call = tail call i64 @foo() nounwind
- %tobool = icmp eq i64 %call, 0
- br i1 %tobool, label %while.end, label %for.cond.preheader
-
-for.cond.preheader: ; preds = %for.cond.preheader.lr.ph, %while.cond.loopexit
- br i1 %cmp6, label %while.cond.loopexit, label %for.body
-
-for.body: ; preds = %for.cond.preheader, %for.body
- %i.07 = phi i64 [ %inc, %for.body ], [ 0, %for.cond.preheader ]
- %add = add i64 %i.07, 10
- %arrayidx = getelementptr inbounds i8* %A, i64 %add
- %0 = load i8* %arrayidx, align 1
- %arrayidx1 = getelementptr inbounds i8* %A, i64 %i.07
- store i8 %0, i8* %arrayidx1, align 1
- %inc = add i64 %i.07, 1
- %exitcond = icmp eq i64 %inc, %n
- br i1 %exitcond, label %while.cond.loopexit, label %for.body
-
-while.end: ; preds = %while.cond.loopexit, %entry
- ret void
-
-; CHECK: @test1
-; CHECK: call void @llvm.memmove.p0i8.p0i8.i64(
-}
diff --git a/test/Transforms/LoopIdiom/memset_noidiom.ll b/test/Transforms/LoopIdiom/memset_noidiom.ll
index 27ef4f639c..168eb95357 100644
--- a/test/Transforms/LoopIdiom/memset_noidiom.ll
+++ b/test/Transforms/LoopIdiom/memset_noidiom.ll
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -loop-idiom < %s -S | FileCheck %s
+; RUN: opt -loop-idiom < %s -S | FileCheck %s
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-n8:16:32:64"
target triple = "x86_64-apple-darwin10.0.0"
@@ -28,54 +28,3 @@ for.end: ; preds = %for.cond.for.end_cr
ret i8* %b
}
-; CHECK: @memcpy
-; CHECK-NOT: llvm.memcpy
-define i8* @memcpy(i8* noalias %dst, i8* noalias %src, i64 %n) nounwind {
-entry:
- %tobool3 = icmp eq i64 %n, 0
- br i1 %tobool3, label %while.end, label %while.body
-
-while.body: ; preds = %entry, %while.body
- %c2.06 = phi i8* [ %incdec.ptr, %while.body ], [ %src, %entry ]
- %c1.05 = phi i8* [ %incdec.ptr1, %while.body ], [ %dst, %entry ]
- %n.addr.04 = phi i64 [ %dec, %while.body ], [ %n, %entry ]
- %dec = add i64 %n.addr.04, -1
- %incdec.ptr = getelementptr inbounds i8* %c2.06, i64 1
- %0 = load i8* %c2.06, align 1
- %incdec.ptr1 = getelementptr inbounds i8* %c1.05, i64 1
- store i8 %0, i8* %c1.05, align 1
- %tobool = icmp eq i64 %dec, 0
- br i1 %tobool, label %while.end, label %while.body
-
-while.end: ; preds = %while.body, %entry
- ret i8* %dst
-}
-
-; CHECK: @memmove
-; CHECK-NOT: llvm.memmove
-define i8* @memmove(i8* %dst, i8* nocapture %src, i64 %count) nounwind {
-entry:
- %sub = add i64 %count, -1
- %tobool9 = icmp eq i64 %count, 0
- br i1 %tobool9, label %while.end, label %while.body.lr.ph
-
-while.body.lr.ph: ; preds = %entry
- %add.ptr2 = getelementptr inbounds i8* %src, i64 %sub
- %add.ptr = getelementptr inbounds i8* %dst, i64 %sub
- br label %while.body
-
-while.body: ; preds = %while.body.lr.ph, %while.body
- %b.012 = phi i8* [ %add.ptr2, %while.body.lr.ph ], [ %incdec.ptr, %while.body ]
- %a.011 = phi i8* [ %add.ptr, %while.body.lr.ph ], [ %incdec.ptr3, %while.body ]
- %count.addr.010 = phi i64 [ %count, %while.body.lr.ph ], [ %dec, %while.body ]
- %dec = add i64 %count.addr.010, -1
- %incdec.ptr = getelementptr inbounds i8* %b.012, i64 -1
- %0 = load i8* %b.012, align 1
- %incdec.ptr3 = getelementptr inbounds i8* %a.011, i64 -1
- store i8 %0, i8* %a.011, align 1
- %tobool = icmp eq i64 %dec, 0
- br i1 %tobool, label %while.end, label %while.body
-
-while.end: ; preds = %while.body, %entry
- ret i8* %dst
-}
diff --git a/test/Transforms/LoopIdiom/multi-dimensional.ll b/test/Transforms/LoopIdiom/multi-dimensional.ll
deleted file mode 100644
index 991f2688d7..0000000000
--- a/test/Transforms/LoopIdiom/multi-dimensional.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: opt -basicaa -loop-idiom < %s -S | FileCheck %s
-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-n8:16:32:64"
-target triple = "x86_64-apple-darwin10.0.0"
-
-%struct.ham = type { [2 x [2 x [2 x [16 x [8 x i32]]]]], i32, %struct.zot }
-%struct.zot = type { i32, i16, i16, [2 x [1152 x i32]] }
-
-define void @test1(%struct.ham* nocapture %arg) nounwind {
-bb:
- br label %bb1
-
-bb1: ; preds = %bb11, %bb
- %tmp = phi i64 [ 0, %bb ], [ %tmp12, %bb11 ]
- br label %bb2
-
-bb2: ; preds = %bb2, %bb1
- %tmp3 = phi i64 [ 0, %bb1 ], [ %tmp8, %bb2 ]
- %tmp4 = getelementptr inbounds %struct.ham* %arg, i64 0, i32 0, i64 0, i64 1, i64 1, i64 %tmp, i64 %tmp3
- store i32 0, i32* %tmp4, align 4
- %tmp5 = getelementptr inbounds %struct.ham* %arg, i64 0, i32 0, i64 0, i64 1, i64 0, i64 %tmp, i64 %tmp3
- store i32 0, i32* %tmp5, align 4
- %tmp6 = getelementptr inbounds %struct.ham* %arg, i64 0, i32 0, i64 0, i64 0, i64 1, i64 %tmp, i64 %tmp3
- store i32 0, i32* %tmp6, align 4
- %tmp7 = getelementptr inbounds %struct.ham* %arg, i64 0, i32 0, i64 0, i64 0, i64 0, i64 %tmp, i64 %tmp3
- store i32 0, i32* %tmp7, align 4
- %tmp8 = add i64 %tmp3, 1
- %tmp9 = trunc i64 %tmp8 to i32
- %tmp10 = icmp eq i32 %tmp9, 8
- br i1 %tmp10, label %bb11, label %bb2
-
-bb11: ; preds = %bb2
- %tmp12 = add i64 %tmp, 1
- %tmp13 = trunc i64 %tmp12 to i32
- %tmp14 = icmp eq i32 %tmp13, 16
- br i1 %tmp14, label %bb15, label %bb1
-
-bb15: ; preds = %bb11
- ret void
-
-; CHECK: @test1
-; CHECK: bb1:
-; CHECK-NOT: store
-; CHECK: call void @llvm.memset.p0i8.i64
-; CHECK-NEXT: call void @llvm.memset.p0i8.i64
-; CHECK-NEXT: call void @llvm.memset.p0i8.i64
-; CHECK-NEXT: call void @llvm.memset.p0i8.i64
-; CHECK-NOT: store
-; CHECK: br
-}
diff --git a/test/Transforms/LoopIdiom/sideeffect.ll b/test/Transforms/LoopIdiom/sideeffect.ll
deleted file mode 100644
index 460e5233f9..0000000000
--- a/test/Transforms/LoopIdiom/sideeffect.ll
+++ /dev/null
@@ -1,53 +0,0 @@
-; RUN: opt -basicaa -loop-idiom < %s -S | FileCheck %s
-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-n8:16:32:64"
-target triple = "x86_64-apple-darwin10.0.0"
-
-; PR9481
-define i32 @test1() nounwind uwtable ssp {
-entry:
- %a = alloca [10 x i8], align 1
- br label %for.body
-
-for.cond1.preheader: ; preds = %for.body
- %arrayidx5.phi.trans.insert = getelementptr inbounds [10 x i8]* %a, i64 0, i64 0
- %.pre = load i8* %arrayidx5.phi.trans.insert, align 1
- br label %for.body3
-
-for.body: ; preds = %for.body, %entry
- %indvars.iv29 = phi i64 [ 0, %entry ], [ %indvars.iv.next30, %for.body ]
- call void (...)* @bar() nounwind
- %arrayidx = getelementptr inbounds [10 x i8]* %a, i64 0, i64 %indvars.iv29
- store i8 23, i8* %arrayidx, align 1
- %indvars.iv.next30 = add i64 %indvars.iv29, 1
- %lftr.wideiv31 = trunc i64 %indvars.iv.next30 to i32
- %exitcond32 = icmp eq i32 %lftr.wideiv31, 1000000
- br i1 %exitcond32, label %for.cond1.preheader, label %for.body
-
-for.body3: ; preds = %for.body3, %for.cond1.preheader
- %0 = phi i8 [ %.pre, %for.cond1.preheader ], [ %add, %for.body3 ]
- %indvars.iv = phi i64 [ 1, %for.cond1.preheader ], [ %indvars.iv.next, %for.body3 ]
- call void (...)* @bar() nounwind
- %arrayidx7 = getelementptr inbounds [10 x i8]* %a, i64 0, i64 %indvars.iv
- %1 = load i8* %arrayidx7, align 1
- %add = add i8 %1, %0
- store i8 %add, i8* %arrayidx7, align 1
- %indvars.iv.next = add i64 %indvars.iv, 1
- %lftr.wideiv = trunc i64 %indvars.iv.next to i32
- %exitcond = icmp eq i32 %lftr.wideiv, 1000000
- br i1 %exitcond, label %for.end12, label %for.body3
-
-for.end12: ; preds = %for.body3
- %arrayidx13 = getelementptr inbounds [10 x i8]* %a, i64 0, i64 2
- %2 = load i8* %arrayidx13, align 1
- %conv14 = sext i8 %2 to i32
- %arrayidx15 = getelementptr inbounds [10 x i8]* %a, i64 0, i64 6
- %3 = load i8* %arrayidx15, align 1
- %conv16 = sext i8 %3 to i32
- %add17 = add nsw i32 %conv16, %conv14
- ret i32 %add17
-
-; CHECK: @test1
-; CHECK-NOT: @llvm.memset
-}
-
-declare void @bar(...)