diff options
author | Andrew Trick <atrick@apple.com> | 2011-09-12 20:26:34 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2011-09-12 20:26:34 +0000 |
commit | 26e5285f9fc63c83222b80984c590d9676a18e4f (patch) | |
tree | 95a177e252e4d541ebfcac7f5b4b8510da081d4e /test/Transforms | |
parent | 2bc3d52b9ab422ee9f7e42a1a4e3b818e623a5f7 (diff) | |
download | llvm-26e5285f9fc63c83222b80984c590d9676a18e4f.tar.gz llvm-26e5285f9fc63c83222b80984c590d9676a18e4f.tar.bz2 llvm-26e5285f9fc63c83222b80984c590d9676a18e4f.tar.xz |
Conditionalize indvars tests that rely on SCEV expansion of geps,
which is relevant with canonical IVs. Anything else being checked by
these tests is already covered by early CSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139535 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
5 files changed, 26 insertions, 25 deletions
diff --git a/test/Transforms/IndVarSimplify/addrec-gep.ll b/test/Transforms/IndVarSimplify/addrec-gep.ll index 58cba60570..9e8b528964 100644 --- a/test/Transforms/IndVarSimplify/addrec-gep.ll +++ b/test/Transforms/IndVarSimplify/addrec-gep.ll @@ -1,8 +1,8 @@ -; RUN: opt < %s -indvars -S > %t -; RUN: grep getelementptr %t | count 1 -; RUN: grep {mul .*, 37} %t | count 1 -; RUN: grep {add .*, 5203} %t | count 1 -; RUN: not grep cast %t +; RUN: opt < %s -indvars -S -enable-iv-rewrite | FileCheck %s +; CHECK: getelementptr +; CHECK: mul {{.*}}, 37 +; CHECK: add {{.*}}, 5203 +; CHECK-NOT: cast ; This test tests several things. The load and store should use the ; same address instead of having it computed twice, and SCEVExpander should diff --git a/test/Transforms/IndVarSimplify/preserve-gep-loop-variant.ll b/test/Transforms/IndVarSimplify/preserve-gep-loop-variant.ll index 26f05c4b1e..66a1ab526f 100644 --- a/test/Transforms/IndVarSimplify/preserve-gep-loop-variant.ll +++ b/test/Transforms/IndVarSimplify/preserve-gep-loop-variant.ll @@ -1,7 +1,7 @@ -; RUN: opt < %s -indvars -S > %t -; RUN: not grep inttoptr %t -; RUN: not grep ptrtoint %t -; RUN: grep scevgep %t +; RUN: opt < %s -indvars -S -enable-iv-rewrite | FileCheck %s +; CHECK-NOT: {{inttoptr|ptrtoint}} +; CHECK: scevgep +; CHECK-NOT: {{inttoptr|ptrtoint}} target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128-n:32:64" ; Indvars shouldn't need inttoptr/ptrtoint to expand an address here. diff --git a/test/Transforms/IndVarSimplify/preserve-gep-nested.ll b/test/Transforms/IndVarSimplify/preserve-gep-nested.ll index b41de5828a..613e30f770 100644 --- a/test/Transforms/IndVarSimplify/preserve-gep-nested.ll +++ b/test/Transforms/IndVarSimplify/preserve-gep-nested.ll @@ -1,15 +1,16 @@ -; RUN: opt < %s -indvars -S > %t -; Exactly one getelementptr for each load+store. -; RUN: grep getelementptr %t | count 6 -; Each getelementptr using %struct.Q* %s as a base and not i8*. -; RUN: grep {getelementptr \[%\]struct\\.Q\\* \[%\]s,} %t | count 6 +; RUN: opt < %s -indvars -S -enable-iv-rewrite | FileCheck %s ; No explicit integer multiplications! -; RUN: not grep {= mul} %t ; No i8* arithmetic or pointer casting anywhere! -; RUN: not grep {i8\\*} %t -; RUN: not grep bitcast %t -; RUN: not grep inttoptr %t -; RUN: not grep ptrtoint %t +; CHECK-NOT: = {{= mul|i8\*|bitcast|inttoptr|ptrtoint}} +; Exactly one getelementptr for each load+store. +; Each getelementptr using %struct.Q* %s as a base and not i8*. +; CHECK: getelementptr %struct.Q* %s, +; CHECK: getelementptr %struct.Q* %s, +; CHECK: getelementptr %struct.Q* %s, +; CHECK: getelementptr %struct.Q* %s, +; CHECK: getelementptr %struct.Q* %s, +; CHECK: getelementptr %struct.Q* %s, +; CHECK-NOT: = {{= mul|i8\*|bitcast|inttoptr|ptrtoint}} ; FIXME: This test should pass with or without TargetData. Until opt ; supports running tests without targetdata, just hardware this in. diff --git a/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll b/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll index ca0c399927..a4b1d78b85 100644 --- a/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll +++ b/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -indvars -S \ -; RUN: | grep {\[%\]p.2.ip.1 = getelementptr \\\[3 x \\\[3 x double\\\]\\\]\\* \[%\]p, i64 2, i64 \[%\]tmp, i64 1} +; RUN: opt < %s -indvars -S -enable-iv-rewrite | FileCheck %s +; CHECK: %p.2.ip.1 = getelementptr [3 x [3 x double]]* %p, i64 2, i64 %tmp, i64 1 target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128-n:32:64" ; Indvars shouldn't expand this to diff --git a/test/Transforms/IndVarSimplify/preserve-gep.ll b/test/Transforms/IndVarSimplify/preserve-gep.ll index 82eda0386e..f970826abc 100644 --- a/test/Transforms/IndVarSimplify/preserve-gep.ll +++ b/test/Transforms/IndVarSimplify/preserve-gep.ll @@ -1,7 +1,7 @@ -; RUN: opt < %s -indvars -S > %t -; RUN: not grep ptrtoint %t -; RUN: not grep inttoptr %t -; RUN: grep getelementptr %t | count 1 +; RUN: opt < %s -indvars -S -enable-iv-rewrite | FileCheck %s +; CHECK-NOT: {{ptrtoint|inttoptr}} +; CHECK: getelementptr +; CHECK-NOT: {{ptrtoint|inttoptr|getelementptr}} ; Indvars shouldn't leave getelementptrs expanded out as ; inttoptr+ptrtoint in its output in common cases. |