summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorWei Mi <wmi@google.com>2017-05-26 05:42:50 +0000
committerWei Mi <wmi@google.com>2017-05-26 05:42:50 +0000
commit3250ae3f7ca65e15c86a82e6f4d4ea2f5236400f (patch)
tree3dd67caf703a04146afb4e5a7a919d1f22920a1d /llvm/test/Transforms
parent25d9ba9a1262fb77f91cae4096ede93c8da6991c (diff)
downloadbcm5719-llvm-3250ae3f7ca65e15c86a82e6f4d4ea2f5236400f.tar.gz
bcm5719-llvm-3250ae3f7ca65e15c86a82e6f4d4ea2f5236400f.zip
Revert rL303923 since it broke the sanitizer bootstrap build bot.
llvm-svn: 303969
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/GVN/PRE/phi-translate-2.ll105
-rw-r--r--llvm/test/Transforms/GVN/PRE/pre-gep-load.ll2
-rw-r--r--llvm/test/Transforms/GVN/PRE/pre-load.ll6
3 files changed, 4 insertions, 109 deletions
diff --git a/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll b/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
deleted file mode 100644
index b2993657c7f..00000000000
--- a/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
+++ /dev/null
@@ -1,105 +0,0 @@
-; RUN: opt < %s -gvn -S | FileCheck %s
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-
-@a = common global [100 x i64] zeroinitializer, align 16
-@b = common global [100 x i64] zeroinitializer, align 16
-@g1 = common global i64 0, align 8
-@g2 = common global i64 0, align 8
-@g3 = common global i64 0, align 8
-declare i64 @goo(...) local_unnamed_addr #1
-
-define void @test1(i64 %a, i64 %b, i64 %c, i64 %d) {
-entry:
- %mul = mul nsw i64 %b, %a
- store i64 %mul, i64* @g1, align 8
- %t0 = load i64, i64* @g2, align 8
- %cmp = icmp sgt i64 %t0, 3
- br i1 %cmp, label %if.then, label %if.end
-
-if.then: ; preds = %entry
- %mul2 = mul nsw i64 %d, %c
- store i64 %mul2, i64* @g2, align 8
- br label %if.end
-
-; Check phi-translate works and mul is removed.
-; CHECK-LABEL: @test1(
-; CHECK: if.end:
-; CHECK: %[[MULPHI:.*]] = phi i64 [ {{.*}}, %if.then ], [ %mul, %entry ]
-; CHECK-NOT: = mul
-; CHECK: store i64 %[[MULPHI]], i64* @g3, align 8
-if.end: ; preds = %if.then, %entry
- %b.addr.0 = phi i64 [ %d, %if.then ], [ %b, %entry ]
- %a.addr.0 = phi i64 [ %c, %if.then ], [ %a, %entry ]
- %mul3 = mul nsw i64 %a.addr.0, %b.addr.0
- store i64 %mul3, i64* @g3, align 8
- ret void
-}
-
-define void @test2(i64 %i) {
-entry:
- %arrayidx = getelementptr inbounds [100 x i64], [100 x i64]* @a, i64 0, i64 %i
- %t0 = load i64, i64* %arrayidx, align 8
- %arrayidx1 = getelementptr inbounds [100 x i64], [100 x i64]* @b, i64 0, i64 %i
- %t1 = load i64, i64* %arrayidx1, align 8
- %mul = mul nsw i64 %t1, %t0
- store i64 %mul, i64* @g1, align 8
- %cmp = icmp sgt i64 %mul, 3
- br i1 %cmp, label %if.then, label %if.end
-
-; Check phi-translate works for the phi generated by loadpre. A new mul will be
-; inserted in if.then block.
-; CHECK-LABEL: @test2(
-; CHECK: if.then:
-; CHECK: %[[MUL_THEN:.*]] = mul
-; CHECK: br label %if.end
-if.then: ; preds = %entry
- %call = tail call i64 (...) @goo() #2
- store i64 %call, i64* @g2, align 8
- br label %if.end
-
-; CHECK: if.end:
-; CHECK: %[[MULPHI:.*]] = phi i64 [ %[[MUL_THEN]], %if.then ], [ %mul, %entry ]
-; CHECK-NOT: = mul
-; CHECK: store i64 %[[MULPHI]], i64* @g3, align 8
-if.end: ; preds = %if.then, %entry
- %i.addr.0 = phi i64 [ 3, %if.then ], [ %i, %entry ]
- %arrayidx3 = getelementptr inbounds [100 x i64], [100 x i64]* @a, i64 0, i64 %i.addr.0
- %t2 = load i64, i64* %arrayidx3, align 8
- %arrayidx4 = getelementptr inbounds [100 x i64], [100 x i64]* @b, i64 0, i64 %i.addr.0
- %t3 = load i64, i64* %arrayidx4, align 8
- %mul5 = mul nsw i64 %t3, %t2
- store i64 %mul5, i64* @g3, align 8
- ret void
-}
-
-; Check phi-translate doesn't go through backedge, which may lead to incorrect
-; pre transformation.
-; CHECK: for.end:
-; CHECK-NOT: %{{.*pre-phi}} = phi
-; CHECK: ret void
-define void @test3(i64 %N, i64* nocapture readonly %a) {
-entry:
- br label %for.cond
-
-for.cond: ; preds = %for.body, %entry
- %i.0 = phi i64 [ 0, %entry ], [ %add, %for.body ]
- %add = add nuw nsw i64 %i.0, 1
- %arrayidx = getelementptr inbounds i64, i64* %a, i64 %add
- %tmp0 = load i64, i64* %arrayidx, align 8
- %cmp = icmp slt i64 %i.0, %N
- br i1 %cmp, label %for.body, label %for.end
-
-for.body: ; preds = %for.cond
- %call = tail call i64 (...) @goo() #2
- %add1 = sub nsw i64 0, %call
- %tobool = icmp eq i64 %tmp0, %add1
- br i1 %tobool, label %for.cond, label %for.end
-
-for.end: ; preds = %for.body, %for.cond
- %i.0.lcssa = phi i64 [ %i.0, %for.body ], [ %i.0, %for.cond ]
- %arrayidx2 = getelementptr inbounds i64, i64* %a, i64 %i.0.lcssa
- %tmp1 = load i64, i64* %arrayidx2, align 8
- store i64 %tmp1, i64* @g1, align 8
- ret void
-}
-
diff --git a/llvm/test/Transforms/GVN/PRE/pre-gep-load.ll b/llvm/test/Transforms/GVN/PRE/pre-gep-load.ll
index 1b2b4d20d31..9eec8bb6455 100644
--- a/llvm/test/Transforms/GVN/PRE/pre-gep-load.ll
+++ b/llvm/test/Transforms/GVN/PRE/pre-gep-load.ll
@@ -37,7 +37,7 @@ sw.bb2: ; preds = %if.end, %entry
%3 = load double, double* %arrayidx5, align 8
; CHECK: sw.bb2:
; CHECK-NOT: sext
-; CHECK: phi double [
+; CHECK-NEXT: phi double [
; CHECK-NOT: load
%sub6 = fsub double 3.000000e+00, %3
br label %return
diff --git a/llvm/test/Transforms/GVN/PRE/pre-load.ll b/llvm/test/Transforms/GVN/PRE/pre-load.ll
index ffff2b7f08e..685df24f62b 100644
--- a/llvm/test/Transforms/GVN/PRE/pre-load.ll
+++ b/llvm/test/Transforms/GVN/PRE/pre-load.ll
@@ -72,7 +72,7 @@ block4:
%PRE = load i32, i32* %P3
ret i32 %PRE
; CHECK: block4:
-; CHECK: phi i32 [
+; CHECK-NEXT: phi i32 [
; CHECK-NOT: load
; CHECK: ret i32
}
@@ -104,7 +104,7 @@ block4:
%PRE = load i32, i32* %P3
ret i32 %PRE
; CHECK: block4:
-; CHECK: phi i32 [
+; CHECK-NEXT: phi i32 [
; CHECK-NOT: load
; CHECK: ret i32
}
@@ -263,7 +263,7 @@ block4:
%PRE = load i32, i32* %P3
ret i32 %PRE
; CHECK: block4:
-; CHECK: phi i32 [
+; CHECK-NEXT: phi i32 [
; CHECK-NOT: load
; CHECK: ret i32
}
OpenPOWER on IntegriCloud