aboutsummaryrefslogtreecommitdiffstats
path: root/test/ExecutionEngine/test-interp-vec-logical.ll
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2013-04-26 20:19:41 +0000
committerNadav Rotem <nrotem@apple.com>2013-04-26 20:19:41 +0000
commit0d840bb2faa6c8cabedaa64826e3c98988d30abb (patch)
treeee0c278aba4345463d356faaa4eef23db5455b7a /test/ExecutionEngine/test-interp-vec-logical.ll
parent2173e1839c2d00f7f980450dd537047b7b376e6b (diff)
downloadexternal_llvm-0d840bb2faa6c8cabedaa64826e3c98988d30abb.zip
external_llvm-0d840bb2faa6c8cabedaa64826e3c98988d30abb.tar.gz
external_llvm-0d840bb2faa6c8cabedaa64826e3c98988d30abb.tar.bz2
Teach the interpreter to handle vector compares and additional vector arithmetic operations.
Patch by Yuri Veselov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180626 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/ExecutionEngine/test-interp-vec-logical.ll')
-rw-r--r--test/ExecutionEngine/test-interp-vec-logical.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/ExecutionEngine/test-interp-vec-logical.ll b/test/ExecutionEngine/test-interp-vec-logical.ll
new file mode 100644
index 0000000..f8f1f0d
--- /dev/null
+++ b/test/ExecutionEngine/test-interp-vec-logical.ll
@@ -0,0 +1,22 @@
+; RUN: %lli %s > /dev/null
+
+define i32 @main() {
+ %A_i8 = and <5 x i8> <i8 4, i8 4, i8 4, i8 4, i8 4>, <i8 8, i8 8, i8 8, i8 8, i8 8>
+ %B_i8 = or <5 x i8> %A_i8, <i8 7, i8 7, i8 7, i8 7, i8 7>
+ %C_i8 = xor <5 x i8> %B_i8, %A_i8
+
+ %A_i16 = and <4 x i16> <i16 4, i16 4, i16 4, i16 4>, <i16 8, i16 8, i16 8, i16 8>
+ %B_i16 = or <4 x i16> %A_i16, <i16 7, i16 7, i16 7, i16 7>
+ %C_i16 = xor <4 x i16> %B_i16, %A_i16
+
+ %A_i32 = and <3 x i32> <i32 4, i32 4, i32 4>, <i32 8, i32 8, i32 8>
+ %B_i32 = or <3 x i32> %A_i32, <i32 7, i32 7, i32 7>
+ %C_i32 = xor <3 x i32> %B_i32, %A_i32
+
+ %A_i64 = and <2 x i64> <i64 4, i64 4>, <i64 8, i64 8>
+ %B_i64 = or <2 x i64> %A_i64, <i64 7, i64 7>
+ %C_i64 = xor <2 x i64> %B_i64, %A_i64
+
+ ret i32 0
+}
+