aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
diff options
Diffstat (limited to 'validation')
-rw-r--r--validation/backend/arithmetic-ops.c94
-rw-r--r--validation/backend/binops.c186
-rw-r--r--validation/backend/bitwise-ops.c54
-rw-r--r--validation/backend/cmp-ops.c24
-rw-r--r--validation/backend/logical-ops.c26
5 files changed, 198 insertions, 186 deletions
diff --git a/validation/backend/arithmetic-ops.c b/validation/backend/arithmetic-ops.c
new file mode 100644
index 00000000..7c299d03
--- /dev/null
+++ b/validation/backend/arithmetic-ops.c
@@ -0,0 +1,94 @@
+static int add(int x, int y)
+{
+ return x + y;
+}
+
+static unsigned int uadd(unsigned int x, unsigned int y)
+{
+ return x + y;
+}
+
+static float fadd(float x, float y)
+{
+ return x + y;
+}
+
+static double dadd(double x, double 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 float fsub(float x, float y)
+{
+ return x - y;
+}
+
+static double dsub(double x, double 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 float fmul(float x, float y)
+{
+ return x * y;
+}
+
+static double dmul(double x, double 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 float fdiv(float x, float y)
+{
+ return x / y;
+}
+
+static double ddiv(double x, double 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;
+}
+
+/*
+ * check-name: Arithmetic operator code generation
+ * check-command: ./sparsec -c $file -o tmp.o
+ */
diff --git a/validation/backend/binops.c b/validation/backend/binops.c
deleted file mode 100644
index 1fed9b25..00000000
--- a/validation/backend/binops.c
+++ /dev/null
@@ -1,186 +0,0 @@
-static int add(int x, int y)
-{
- return x + y;
-}
-
-static unsigned int uadd(unsigned int x, unsigned int y)
-{
- return x + y;
-}
-
-static float fadd(float x, float y)
-{
- return x + y;
-}
-
-static double dadd(double x, double 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 float fsub(float x, float y)
-{
- return x - y;
-}
-
-static double dsub(double x, double 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 float fmul(float x, float y)
-{
- return x * y;
-}
-
-static double dmul(double x, double 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 float fdiv(float x, float y)
-{
- return x / y;
-}
-
-static double ddiv(double x, double 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;
-}
-#endif
-
-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;
-}
-
-/*
- * check-name: binary op code generation
- * check-command: ./sparsec -c $file -o tmp.o
- */
diff --git a/validation/backend/bitwise-ops.c b/validation/backend/bitwise-ops.c
new file mode 100644
index 00000000..aa1029e4
--- /dev/null
+++ b/validation/backend/bitwise-ops.c
@@ -0,0 +1,54 @@
+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;
+}
+
+/*
+ * check-name: Bitwise operator code generation
+ * check-command: ./sparsec -c $file -o tmp.o
+ */
diff --git a/validation/backend/cmp-ops.c b/validation/backend/cmp-ops.c
new file mode 100644
index 00000000..5a89bee7
--- /dev/null
+++ b/validation/backend/cmp-ops.c
@@ -0,0 +1,24 @@
+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;
+}
+
+/*
+ * check-name: Comparison operator code generation
+ * check-command: ./sparsec -c $file -o tmp.o
+ */
diff --git a/validation/backend/logical-ops.c b/validation/backend/logical-ops.c
new file mode 100644
index 00000000..1a0e9244
--- /dev/null
+++ b/validation/backend/logical-ops.c
@@ -0,0 +1,26 @@
+#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;
+}
+#endif
+
+/*
+ * check-name: Logical operator code generation
+ * check-command: ./sparsec -c $file -o tmp.o
+ */