bug-mes
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] tests: add comparison against rotated number test.


From: Ekaitz Zarraga
Subject: [PATCH] tests: add comparison against rotated number test.
Date: Tue, 29 Aug 2023 18:41:22 +0000

>From f73ff81a2fd12c33f4f3334677fd05830d6c7dcd Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Tue, 29 Aug 2023 20:15:03 +0200
Subject: [PATCH] tests: add comparison against rotated number test.

* lib/tests/scaffold/17-compare-rotated.c: Add file.
* build-aux/check-mescc.sh (mes_tests): Add it.
---
 build-aux/check-mescc.sh                |  1 +
 lib/tests/scaffold/17-compare-rotated.c | 41 +++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 lib/tests/scaffold/17-compare-rotated.c

diff --git a/build-aux/check-mescc.sh b/build-aux/check-mescc.sh
index 13bf80e6..5fd89a1e 100755
--- a/build-aux/check-mescc.sh
+++ b/build-aux/check-mescc.sh
@@ -66,6 +66,7 @@ lib/tests/scaffold/17-compare-or.c
 lib/tests/scaffold/17-compare-and-or.c
 lib/tests/scaffold/17-compare-assign.c
 lib/tests/scaffold/17-compare-call.c
+lib/tests/scaffold/17-compare-rotated.c
 lib/tests/scaffold/18-assign-shadow.c
 lib/tests/scaffold/20-while.c
 lib/tests/scaffold/21-char-array-simple.c
diff --git a/lib/tests/scaffold/17-compare-rotated.c 
b/lib/tests/scaffold/17-compare-rotated.c
new file mode 100644
index 00000000..9c2eb73d
--- /dev/null
+++ b/lib/tests/scaffold/17-compare-rotated.c
@@ -0,0 +1,41 @@
+/* -*-comment-start: "//";comment-end:""-*-
+ * GNU Mes --- Maxwell Equations of Software
+ * Copyright © 2023 Ekaitz Zarraga <ekaitz@elenq.tech>
+ *
+ * This file is part of GNU Mes.
+ *
+ * GNU Mes is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * GNU Mes is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include<stdint.h>
+#include<stdio.h>
+
+int
+main ()
+{
+  uint32_t r = 0xFFFFFFFF;
+  r = r <<30 >>30;          // higher 30 bits are cleared because they leave
+                            // the register to the left
+  if (r != 3)
+    return 1;
+
+  uint16_t s = 0xFFFF;
+  s = s <<14 >>14;          // s<<14 is promoted to int, the higher bits are
+                            // not cleared, because there's space in the
+                            // register
+  if (s != 0xFFFF)
+    return 2;
+
+  return 0;
+}
-- 
2.41.0





reply via email to

[Prev in Thread] Current Thread [Next in Thread]