diff options
Diffstat (limited to 'test/Transforms/SCCP')
-rw-r--r-- | test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/2006-12-19-UndefBug.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/2008-05-23-UndefCallFold.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll | 4 | ||||
-rw-r--r-- | test/Transforms/SCCP/apint-array.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/apint-basictest4.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/apint-ipsccp1.ll | 4 | ||||
-rw-r--r-- | test/Transforms/SCCP/apint-ipsccp2.ll | 4 | ||||
-rw-r--r-- | test/Transforms/SCCP/logical-nuke.ll | 2 | ||||
-rw-r--r-- | test/Transforms/SCCP/vector-bitcast.ll | 20 |
11 files changed, 33 insertions, 13 deletions
diff --git a/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll b/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll index 4adfde3..c847b4e 100644 --- a/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll +++ b/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -sccp -S | grep {ret i32 1} +; RUN: opt < %s -sccp -S | grep "ret i32 1" ; This function definitely returns 1, even if we don't know the direction ; of the branch. diff --git a/test/Transforms/SCCP/2006-12-19-UndefBug.ll b/test/Transforms/SCCP/2006-12-19-UndefBug.ll index ec69ce0..ede1a32 100644 --- a/test/Transforms/SCCP/2006-12-19-UndefBug.ll +++ b/test/Transforms/SCCP/2006-12-19-UndefBug.ll @@ -1,5 +1,5 @@ ; RUN: opt < %s -sccp -S | \ -; RUN: grep {ret i1 false} +; RUN: grep "ret i1 false" define i1 @foo() { %X = and i1 false, undef ; <i1> [#uses=1] diff --git a/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll b/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll index a40455c..e7168dd 100644 --- a/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll +++ b/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -sccp -S | grep {ret i32 %Z} +; RUN: opt < %s -sccp -S | grep "ret i32 %Z" ; rdar://5778210 declare {i32, i32} @bar(i32 %A) diff --git a/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll b/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll index 63f41db..4688643 100644 --- a/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll +++ b/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -sccp -S | not grep {ret i32 undef} +; RUN: opt < %s -sccp -S | not grep "ret i32 undef" ; PR2358 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" diff --git a/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll b/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll index f62ed70..c05f897 100644 --- a/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll +++ b/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -ipsccp -S | grep {ret i32 42} -; RUN: opt < %s -ipsccp -S | grep {ret i32 undef} +; RUN: opt < %s -ipsccp -S | grep "ret i32 42" +; RUN: opt < %s -ipsccp -S | grep "ret i32 undef" ; PR3325 define i32 @main() { diff --git a/test/Transforms/SCCP/apint-array.ll b/test/Transforms/SCCP/apint-array.ll index 1e75878..888b9e1 100644 --- a/test/Transforms/SCCP/apint-array.ll +++ b/test/Transforms/SCCP/apint-array.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -sccp -S | grep {ret i101 12} +; RUN: opt < %s -sccp -S | grep "ret i101 12" @Y = constant [6 x i101] [ i101 12, i101 123456789000000, i101 -12,i101 -123456789000000, i101 0,i101 9123456789000000] diff --git a/test/Transforms/SCCP/apint-basictest4.ll b/test/Transforms/SCCP/apint-basictest4.ll index 8624260..572f97c 100644 --- a/test/Transforms/SCCP/apint-basictest4.ll +++ b/test/Transforms/SCCP/apint-basictest4.ll @@ -4,7 +4,7 @@ ; RUN: opt < %s -sccp -S | not grep and ; RUN: opt < %s -sccp -S | not grep trunc -; RUN: opt < %s -sccp -S | grep {ret i100 -1} +; RUN: opt < %s -sccp -S | grep "ret i100 -1" define i100 @test(i133 %A) { %B = and i133 0, %A diff --git a/test/Transforms/SCCP/apint-ipsccp1.ll b/test/Transforms/SCCP/apint-ipsccp1.ll index fda40f5..f6f18fe 100644 --- a/test/Transforms/SCCP/apint-ipsccp1.ll +++ b/test/Transforms/SCCP/apint-ipsccp1.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -ipsccp -S | grep -v {ret i512 undef} | \ -; RUN: grep {ret i8 2} +; RUN: opt < %s -ipsccp -S | grep -v "ret i512 undef" | \ +; RUN: grep "ret i8 2" define internal i512 @test(i1 %B) { br i1 %B, label %BB1, label %BB2 diff --git a/test/Transforms/SCCP/apint-ipsccp2.ll b/test/Transforms/SCCP/apint-ipsccp2.ll index 3c02e05..834cca4 100644 --- a/test/Transforms/SCCP/apint-ipsccp2.ll +++ b/test/Transforms/SCCP/apint-ipsccp2.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -ipsccp -S | grep -v {ret i101 0} | \ -; RUN: grep -v {ret i101 undef} | not grep ret +; RUN: opt < %s -ipsccp -S | grep -v "ret i101 0" | \ +; RUN: grep -v "ret i101 undef" | not grep ret define internal i101 @bar(i101 %A) { diff --git a/test/Transforms/SCCP/logical-nuke.ll b/test/Transforms/SCCP/logical-nuke.ll index b3d845c..45f6f44 100644 --- a/test/Transforms/SCCP/logical-nuke.ll +++ b/test/Transforms/SCCP/logical-nuke.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -sccp -S | grep {ret i32 0} +; RUN: opt < %s -sccp -S | grep "ret i32 0" ; Test that SCCP has basic knowledge of when and/or nuke overdefined values. diff --git a/test/Transforms/SCCP/vector-bitcast.ll b/test/Transforms/SCCP/vector-bitcast.ll new file mode 100644 index 0000000..b032085 --- /dev/null +++ b/test/Transforms/SCCP/vector-bitcast.ll @@ -0,0 +1,20 @@ +; RUN: opt -sccp -S < %s | FileCheck %s + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32-S128" + +; CHECK: store volatile <2 x i64> zeroinitializer, <2 x i64>* %p +; rdar://11324230 + +define void @foo(<2 x i64>* %p) nounwind { +entry: + br label %while.body.i + +while.body.i: ; preds = %while.body.i, %entry + %vWorkExponent.i.033 = phi <4 x i32> [ %sub.i.i, %while.body.i ], [ <i32 939524096, i32 939524096, i32 939524096, i32 939524096>, %entry ] + %sub.i.i = add <4 x i32> %vWorkExponent.i.033, <i32 -8388608, i32 -8388608, i32 -8388608, i32 -8388608> + %0 = bitcast <4 x i32> %sub.i.i to <2 x i64> + %and.i119.i = and <2 x i64> %0, zeroinitializer + store volatile <2 x i64> %and.i119.i, <2 x i64>* %p + br label %while.body.i +} + |