summaryrefslogtreecommitdiff
path: root/kernels/compiler_vector_inc.cl
diff options
context:
space:
mode:
authorHomer Hsing <homer.xing@intel.com>2013-09-24 11:11:21 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2013-09-25 19:07:51 +0800
commit1951311d955aab3ae40e1753c98926911b73f2d4 (patch)
tree7173f7f26ecb1ea565e3b0c1d389db94b969975f /kernels/compiler_vector_inc.cl
parenta5e5e694570cda71ff13a3908a1cb8ffa59bd9cf (diff)
downloadbeignet-1951311d955aab3ae40e1753c98926911b73f2d4.tar.gz
fix scalarizing of llvm phi node
llvm phi node can have odd number of args. this patch also contains a test case. Signed-off-by: Homer Hsing <homer.xing@intel.com> Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'kernels/compiler_vector_inc.cl')
-rw-r--r--kernels/compiler_vector_inc.cl13
1 files changed, 13 insertions, 0 deletions
diff --git a/kernels/compiler_vector_inc.cl b/kernels/compiler_vector_inc.cl
new file mode 100644
index 00000000..548dcb4f
--- /dev/null
+++ b/kernels/compiler_vector_inc.cl
@@ -0,0 +1,13 @@
+kernel void compiler_vector_inc(global char *dst, global char *src) {
+ size_t i = get_global_id(0);
+ char2 dst2 = vload2(i, dst);
+ if (src[i] == 0)
+ dst2++;
+ else if(src[i] == 1)
+ ++dst2;
+ else if(src[i] == 2)
+ dst2--;
+ else
+ --dst2;
+ vstore2(dst2, i, dst);
+}