aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/optim/cmp-zext-simm.c
diff options
Diffstat (limited to 'validation/optim/cmp-zext-simm.c')
-rw-r--r--validation/optim/cmp-zext-simm.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/validation/optim/cmp-zext-simm.c b/validation/optim/cmp-zext-simm.c
new file mode 100644
index 00000000..dda237d7
--- /dev/null
+++ b/validation/optim/cmp-zext-simm.c
@@ -0,0 +1,23 @@
+#define ZEXT(X) ((long long)(X))
+#define BITS ((long long)(~0U))
+
+int zext_ult(unsigned int x) { return (ZEXT(x) < (BITS + 1)) == 1; }
+int zext_ule(unsigned int x) { return (ZEXT(x) <= (BITS + 0)) == 1; }
+int zext_uge(unsigned int x) { return (ZEXT(x) >= (BITS + 1)) == 0; }
+int zext_ugt(unsigned int x) { return (ZEXT(x) > (BITS + 0)) == 0; }
+
+int zext_0le(unsigned int x) { return (ZEXT(x) <= 0) == (x == 0); }
+int zext_0ge(unsigned int x) { return (ZEXT(x) > 0) == (x != 0); }
+
+int zext_llt(unsigned int x) { return (ZEXT(x) < -1) == 0; }
+int zext_lle(unsigned int x) { return (ZEXT(x) <= -1) == 0; }
+int zext_lge(unsigned int x) { return (ZEXT(x) >= -1) == 1; }
+int zext_lgt(unsigned int x) { return (ZEXT(x) > -1) == 1; }
+
+/*
+ * check-name: cmp-zext-simm
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-ignore
+ * check-output-returns: 1
+ */