summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorArtur Pilipenko <apilipenko@azulsystems.com>2016-08-22 13:12:07 +0000
committerArtur Pilipenko <apilipenko@azulsystems.com>2016-08-22 13:12:07 +0000
commitb78ad9d41f0fa63f4c7902b70647cefb1c639b74 (patch)
tree457da01bc4b8215ec635ceff3a6ee3927dc7e0ad /llvm/test/Transforms
parenta927aa4ad083a180558fe9e2224805cdc6a60b47 (diff)
downloadbcm5719-llvm-b78ad9d41f0fa63f4c7902b70647cefb1c639b74.tar.gz
bcm5719-llvm-b78ad9d41f0fa63f4c7902b70647cefb1c639b74.zip
Revert -r278269 [IndVarSimplify] Eliminate zext of a signed IV when the IV is known to be non-negative
This change needs to be reverted in order to revert -r278267 which cause performance regression on MultiSource/Benchmarks/TSVC/Symbolics-flt/Symbolics-flt from LNT and some other bechmarks. See comments on https://reviews.llvm.org/D18777 for details. llvm-svn: 279432
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll82
1 files changed, 0 insertions, 82 deletions
diff --git a/llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll b/llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll
deleted file mode 100644
index 763156d16c6..00000000000
--- a/llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll
+++ /dev/null
@@ -1,82 +0,0 @@
-; RUN: opt < %s -indvars -S | FileCheck %s --implicit-check-not sext --implicit-check-not zext
-
-target datalayout = "p:64:64:64-n32:64"
-
-; When widening IV and its users, trunc and zext/sext are not needed
-; if the original 32-bit user is known to be non-negative, whether
-; the IV is considered signed or unsigned.
-define void @foo(i32* %A, i32* %B, i32* %C, i32 %N) {
-; CHECK-LABEL: @foo(
-; CHECK: wide.trip.count = zext
-; CHECK: ret void
-entry:
- %cmp1 = icmp slt i32 0, %N
- br i1 %cmp1, label %for.body.lr.ph, label %for.end
-
-for.body.lr.ph: ; preds = %entry
- br label %for.body
-
-for.body: ; preds = %for.body.lr.ph, %for.inc
- %i.02 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ]
- %idxprom = sext i32 %i.02 to i64
- %arrayidx = getelementptr inbounds i32, i32* %B, i64 %idxprom
- %0 = load i32, i32* %arrayidx, align 4
- %add = add nsw i32 %i.02, 2
- %idxprom1 = zext i32 %add to i64
- %arrayidx2 = getelementptr inbounds i32, i32* %C, i64 %idxprom1
- %1 = load i32, i32* %arrayidx2, align 4
- %add3 = add nsw i32 %0, %1
- %idxprom4 = zext i32 %i.02 to i64
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
- store i32 %add3, i32* %arrayidx5, align 4
- br label %for.inc
-
-for.inc: ; preds = %for.body
- %inc = add nsw i32 %i.02, 1
- %cmp = icmp slt i32 %inc, %N
- br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge
-
-for.cond.for.end_crit_edge: ; preds = %for.inc
- br label %for.end
-
-for.end: ; preds = %for.cond.for.end_crit_edge, %entry
- ret void
-}
-
-define void @foo1(i32* %A, i32* %B, i32* %C, i32 %N) {
-; CHECK-LABEL: @foo1(
-; CHECK: wide.trip.count = zext
-; CHECK: ret void
-entry:
- %cmp1 = icmp slt i32 0, %N
- br i1 %cmp1, label %for.body.lr.ph, label %for.end
-
-for.body.lr.ph: ; preds = %entry
- br label %for.body
-
-for.body: ; preds = %for.body.lr.ph, %for.inc
- %i.02 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ]
- %idxprom = zext i32 %i.02 to i64
- %arrayidx = getelementptr inbounds i32, i32* %B, i64 %idxprom
- %0 = load i32, i32* %arrayidx, align 4
- %add = add nsw i32 %i.02, 2
- %idxprom1 = sext i32 %add to i64
- %arrayidx2 = getelementptr inbounds i32, i32* %C, i64 %idxprom1
- %1 = load i32, i32* %arrayidx2, align 4
- %add3 = add nsw i32 %0, %1
- %idxprom4 = sext i32 %i.02 to i64
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
- store i32 %add3, i32* %arrayidx5, align 4
- br label %for.inc
-
-for.inc: ; preds = %for.body
- %inc = add nsw i32 %i.02, 1
- %cmp = icmp slt i32 %inc, %N
- br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge
-
-for.cond.for.end_crit_edge: ; preds = %for.inc
- br label %for.end
-
-for.end: ; preds = %for.cond.for.end_crit_edge, %entry
- ret void
-}
OpenPOWER on IntegriCloud