Add tests for performing GVNPRE on the three vector-specific instructions.
authorOwen Anderson <resistor@mac.com>
Wed, 27 Jun 2007 04:06:32 +0000 (04:06 +0000)
committerOwen Anderson <resistor@mac.com>
Wed, 27 Jun 2007 04:06:32 +0000 (04:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37744 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/GVNPRE/extractelement.ll [new file with mode: 0644]
test/Transforms/GVNPRE/insertelement.ll [new file with mode: 0644]
test/Transforms/GVNPRE/shufflevector.ll [new file with mode: 0644]

diff --git a/test/Transforms/GVNPRE/extractelement.ll b/test/Transforms/GVNPRE/extractelement.ll
new file mode 100644 (file)
index 0000000..7d05c8f
--- /dev/null
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
+
+define i32 @extract() {
+entry:         ; preds = %cond_false, %entry
+  %foo = add <2 x i32> < i32 1, i32 1 >, < i32 1, i32 1 >
+       br i1 true, label %cond_true, label %cond_false
+
+cond_true:
+  br label %end
+
+cond_false:
+  %a = extractelement <2 x i32> %foo, i32 0
+  br label %end
+
+end:
+  %b = extractelement <2 x i32> %foo, i32 0
+  ret i32 %b
+}
diff --git a/test/Transforms/GVNPRE/insertelement.ll b/test/Transforms/GVNPRE/insertelement.ll
new file mode 100644 (file)
index 0000000..caf8474
--- /dev/null
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
+
+define i32 @extract() {
+entry:         ; preds = %cond_false, %entry
+  %foo = add <2 x i32> < i32 1, i32 1 >, < i32 1, i32 1 >
+       br i1 true, label %cond_true, label %cond_false
+
+cond_true:
+  br label %end
+
+cond_false:
+  %a = insertelement <2 x i32> %foo, i32 0, i32 3
+  br label %end
+
+end:
+  %b = insertelement <2 x i32> %foo, i32 0, i32 3
+  ret i32 0
+}
diff --git a/test/Transforms/GVNPRE/shufflevector.ll b/test/Transforms/GVNPRE/shufflevector.ll
new file mode 100644 (file)
index 0000000..9fc3592
--- /dev/null
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
+
+define i32 @extract() {
+entry:         ; preds = %cond_false, %entry
+  %foo = add <2 x i32> < i32 1, i32 1 >, < i32 1, i32 1 >
+       br i1 true, label %cond_true, label %cond_false
+
+cond_true:
+  br label %end
+
+cond_false:
+  %a = shufflevector <2 x i32> %foo, <2 x i32> undef,  <2 x i32> < i32 0, i32 1 >
+  br label %end
+
+end:
+  %b = shufflevector <2 x i32> %foo, <2 x i32> undef,  <2 x i32> < i32 0, i32 1 >
+  ret i32 0
+}