summaryrefslogtreecommitdiff
path: root/tests/lldb/cpp/BranchingFunCalls/scalars.rscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lldb/cpp/BranchingFunCalls/scalars.rscript')
-rw-r--r--tests/lldb/cpp/BranchingFunCalls/scalars.rscript76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/lldb/cpp/BranchingFunCalls/scalars.rscript b/tests/lldb/cpp/BranchingFunCalls/scalars.rscript
new file mode 100644
index 00000000..279694d7
--- /dev/null
+++ b/tests/lldb/cpp/BranchingFunCalls/scalars.rscript
@@ -0,0 +1,76 @@
+/*
+* Copyright (C) 2016 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#pragma version(1)
+#pragma rs java_package_name(com.android.rs.cppbranchingfuncalls)
+
+static bool is_neg(int a)
+{
+ if(a < 0)
+ return true;
+ else
+ return false;
+}
+
+static bool is_pos(int a)
+{
+ if(a > 0)
+ return true;
+ else
+ return false;
+}
+
+static void set_i(int * a, int b)
+{
+ int tmp = b;
+ *a = tmp;
+}
+
+static void modify_f(float * f)
+{
+ *f *= 0.5f;
+}
+
+static void modify_i(int * i)
+{
+ int j = *i;
+ int cutoff = 2 << 6;
+ if(j > cutoff)
+ j = cutoff;
+ if(is_neg(j))
+ set_i(i, 0);
+ else if(is_pos(j))
+ set_i(i, j);
+ else
+ set_i(i, cutoff);
+}
+
+int __attribute__((kernel)) simple_kernel(int in)
+{
+ int i = in;
+ float f = (float) i;
+ modify_f(&f);
+ modify_i(&i);
+ int ret = (int) f;
+ return in * ret;
+}
+
+int glob = 123;
+
+void addToGlobal(int arg)
+{
+ glob += arg;
+}