aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
diff options
authorPekka Enberg <penberg@kernel.org>2011-08-25 22:49:43 +0300
committerPekka Enberg <penberg@kernel.org>2011-08-25 22:51:21 +0300
commit9431db102f090209c54b157f56d6dc49615134fa (patch)
treea15ce534fc876fac81f84074da8232e078c75d9a /validation
parent5ddb9fcf51acdae24fb352ae988403227d9d2a42 (diff)
downloadsparse-dev-9431db102f090209c54b157f56d6dc49615134fa.tar.gz
sparse, llvm: Move binop tests to validation/backend
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'validation')
-rw-r--r--validation/backend/binops.c146
1 files changed, 146 insertions, 0 deletions
diff --git a/validation/backend/binops.c b/validation/backend/binops.c
new file mode 100644
index 00000000..bebefb5b
--- /dev/null
+++ b/validation/backend/binops.c
@@ -0,0 +1,146 @@
+static int add(int x, int y)
+{
+ return x + y;
+}
+
+static unsigned int uadd(unsigned int x, unsigned int y)
+{
+ return x + y;
+}
+
+static int sub(int x, int y)
+{
+ return x - y;
+}
+
+static unsigned int usub(unsigned int x, unsigned int y)
+{
+ return x - y;
+}
+
+static int mul(int x, int y)
+{
+ return x * y;
+}
+
+static unsigned int umul(unsigned int x, unsigned int y)
+{
+ return x * y;
+}
+
+static int div(int x, int y)
+{
+ return x / y;
+}
+
+static unsigned int udiv(unsigned int x, unsigned int y)
+{
+ return x / y;
+}
+
+static int mod(int x, int y)
+{
+ return x % y;
+}
+
+static unsigned int umod(unsigned int x, unsigned int y)
+{
+ return x % y;
+}
+
+static int shl(int x, int y)
+{
+ return x << y;
+}
+
+static unsigned int ushl(unsigned int x, unsigned int y)
+{
+ return x << y;
+}
+
+static int shr(int x, int y)
+{
+ return x >> y;
+}
+
+static unsigned int ushr(unsigned int x, unsigned int y)
+{
+ return x >> y;
+}
+
+static int and(int x, int y)
+{
+ return x & y;
+}
+
+static unsigned int uand(unsigned int x, unsigned int y)
+{
+ return x & y;
+}
+
+static int or(int x, int y)
+{
+ return x | y;
+}
+
+static unsigned int uor(unsigned int x, unsigned int y)
+{
+ return x | y;
+}
+
+static int xor(int x, int y)
+{
+ return x ^ y;
+}
+
+static unsigned int uxor(unsigned int x, unsigned int y)
+{
+ return x ^ y;
+}
+
+#if 0
+static int and_bool(int x, int y)
+{
+ return x && y;
+}
+
+static unsigned int uand_bool(unsigned int x, unsigned int y)
+{
+ return x && y;
+}
+
+static int or_bool(int x, int y)
+{
+ return x || y;
+}
+
+static unsigned int uor_bool(unsigned int x, unsigned int y)
+{
+ return x || y;
+}
+
+static int sete(int x, int y)
+{
+ return x == y;
+}
+
+static int setne(int x, int y)
+{
+ return x != y;
+}
+
+static int setl(int x, int y)
+{
+ return x < y;
+}
+
+static int setg(int x, int y)
+{
+ return x > y;
+}
+#endif
+
+/*
+ * check-name: binary op code generation
+ * check-command: ./sparsec -c $file -o tmp.o
+ */