summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
committerEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
commita86343512845c9c1fdbac865fea88aa5fce7142a (patch)
tree666fc6353de19ad8b00e56b67edd33f24104e4a7 /llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
parent7f8ca6e3679b3af951cb7a4b1377edfaa3244b93 (diff)
downloadbcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.tar.gz
bcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.zip
Temporarily Revert "Add basic loop fusion pass."
As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
Diffstat (limited to 'llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll')
-rw-r--r--llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll64
1 files changed, 0 insertions, 64 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll b/llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
deleted file mode 100644
index 33801cab2fe..00000000000
--- a/llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: opt -loop-vectorize -force-vector-width=4 -S < %s | FileCheck %s
-
-; This is the test case from PR26314.
-; When we were retrying dependence checking with memchecks only,
-; the loop-invariant access in the inner loop was incorrectly determined to be wrapping
-; because it was not strided in the inner loop.
-; Improved wrapping detection allows vectorization in the following case.
-
-; #define Z 32
-; typedef struct s {
-; int v1[Z];
-; int v2[Z];
-; int v3[Z][Z];
-; } s;
-;
-; void slow_function (s* const obj, int z) {
-; for (int j=0; j<Z; j++) {
-; for (int k=0; k<z; k++) {
-; int x = obj->v1[k] + obj->v2[j];
-; obj->v3[j][k] += x;
-; }
-; }
-; }
-
-; CHECK-LABEL: Test
-; CHECK: <4 x i64>
-; CHECK: <4 x i32>, <4 x i32>
-; CHECK: !{!"llvm.loop.isvectorized", i32 1}
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-
-%struct.s = type { [32 x i32], [32 x i32], [32 x [32 x i32]] }
-
-define void @Test(%struct.s* nocapture %obj, i64 %z) #0 {
- br label %.outer.preheader
-
-
-.outer.preheader:
- %i = phi i64 [ 0, %0 ], [ %i.next, %.outer ]
- %1 = getelementptr inbounds %struct.s, %struct.s* %obj, i64 0, i32 1, i64 %i
- br label %.inner
-
-.exit:
- ret void
-
-.outer:
- %i.next = add nuw nsw i64 %i, 1
- %exitcond.outer = icmp eq i64 %i.next, 32
- br i1 %exitcond.outer, label %.exit, label %.outer.preheader
-
-.inner:
- %j = phi i64 [ 0, %.outer.preheader ], [ %j.next, %.inner ]
- %2 = getelementptr inbounds %struct.s, %struct.s* %obj, i64 0, i32 0, i64 %j
- %3 = load i32, i32* %2
- %4 = load i32, i32* %1
- %5 = add nsw i32 %4, %3
- %6 = getelementptr inbounds %struct.s, %struct.s* %obj, i64 0, i32 2, i64 %i, i64 %j
- %7 = load i32, i32* %6
- %8 = add nsw i32 %5, %7
- store i32 %8, i32* %6
- %j.next = add nuw nsw i64 %j, 1
- %exitcond.inner = icmp eq i64 %j.next, %z
- br i1 %exitcond.inner, label %.outer, label %.inner
-}
OpenPOWER on IntegriCloud