various new testcases
authorMrStrcmp <e0826623@student.tuwien.ac.at>
Sun, 16 May 2010 23:35:55 +0000 (01:35 +0200)
committerMrStrcmp <e0826623@student.tuwien.ac.at>
Sun, 16 May 2010 23:35:55 +0000 (01:35 +0200)
54 files changed:
codea/mrstrcmp_00.0 [new file with mode: 0644]
codea/mrstrcmp_00.call [new file with mode: 0644]
codea/mrstrcmp_00.instr [new file with mode: 0644]
codea/mrstrcmp_01.0 [new file with mode: 0644]
codea/mrstrcmp_01.call [new file with mode: 0644]
codea/mrstrcmp_01.instr [new file with mode: 0644]
codea/mrstrcmp_02.0 [new file with mode: 0644]
codea/mrstrcmp_02.call [new file with mode: 0644]
codea/mrstrcmp_02.instr [new file with mode: 0644]
codea/mrstrcmp_03.0 [new file with mode: 0644]
codea/mrstrcmp_03.call [new file with mode: 0644]
codea/mrstrcmp_03.instr [new file with mode: 0644]
codea/mrstrcmp_04.0 [new file with mode: 0644]
codea/mrstrcmp_04.call [new file with mode: 0644]
codea/mrstrcmp_04.instr [new file with mode: 0644]
codea/mrstrcmp_05.0 [new file with mode: 0644]
codea/mrstrcmp_05.call [new file with mode: 0644]
codea/mrstrcmp_05.instr [new file with mode: 0644]
codea/mrstrcmp_06.0 [new file with mode: 0644]
codea/mrstrcmp_06.call [new file with mode: 0644]
codea/mrstrcmp_06.instr [new file with mode: 0644]
codea/mrstrcmp_07.0 [new file with mode: 0644]
codea/mrstrcmp_07.call [new file with mode: 0644]
codea/mrstrcmp_07.instr [new file with mode: 0644]
codea/mrstrcmp_08.0 [new file with mode: 0644]
codea/mrstrcmp_08.call [new file with mode: 0644]
codea/mrstrcmp_08.instr [new file with mode: 0644]
codea/mrstrcmp_09.0 [new file with mode: 0644]
codea/mrstrcmp_09.call [new file with mode: 0644]
codea/mrstrcmp_09.instr [new file with mode: 0644]
codea/mrstrcmp_10.0 [new file with mode: 0644]
codea/mrstrcmp_10.call [new file with mode: 0644]
codea/mrstrcmp_10.instr [new file with mode: 0644]
codea/mrstrcmp_11.0 [new file with mode: 0644]
codea/mrstrcmp_11.call [new file with mode: 0644]
codea/mrstrcmp_11.instr [new file with mode: 0644]
codea/mrstrcmp_12.0 [new file with mode: 0644]
codea/mrstrcmp_12.call [new file with mode: 0644]
codea/mrstrcmp_12.instr [new file with mode: 0644]
codea/mrstrcmp_13.0 [new file with mode: 0644]
codea/mrstrcmp_13.call [new file with mode: 0644]
codea/mrstrcmp_13.instr [new file with mode: 0644]
codea/mrstrcmp_14.0 [new file with mode: 0644]
codea/mrstrcmp_14.call [new file with mode: 0644]
codea/mrstrcmp_14.instr [new file with mode: 0644]
codea/mrstrcmp_15.0 [new file with mode: 0644]
codea/mrstrcmp_15.call [new file with mode: 0644]
codea/mrstrcmp_15.instr [new file with mode: 0644]
codea/mrstrcmp_16.0 [new file with mode: 0644]
codea/mrstrcmp_16.call [new file with mode: 0644]
codea/mrstrcmp_16.instr [new file with mode: 0644]
codea/mrstrcmp_17.0 [new file with mode: 0644]
codea/mrstrcmp_17.call [new file with mode: 0644]
codea/mrstrcmp_17.instr [new file with mode: 0644]

diff --git a/codea/mrstrcmp_00.0 b/codea/mrstrcmp_00.0
new file mode 100644 (file)
index 0000000..ce70add
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return u;
+end;
+
diff --git a/codea/mrstrcmp_00.call b/codea/mrstrcmp_00.call
new file mode 100644 (file)
index 0000000..95aa118
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(v, NULL) == v[0]);
+
diff --git a/codea/mrstrcmp_00.instr b/codea/mrstrcmp_00.instr
new file mode 100644 (file)
index 0000000..0cfbf08
--- /dev/null
@@ -0,0 +1 @@
+2
diff --git a/codea/mrstrcmp_01.0 b/codea/mrstrcmp_01.0
new file mode 100644 (file)
index 0000000..6892b27
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return this.u;
+end;
+
diff --git a/codea/mrstrcmp_01.call b/codea/mrstrcmp_01.call
new file mode 100644 (file)
index 0000000..95aa118
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(v, NULL) == v[0]);
+
diff --git a/codea/mrstrcmp_01.instr b/codea/mrstrcmp_01.instr
new file mode 100644 (file)
index 0000000..0cfbf08
--- /dev/null
@@ -0,0 +1 @@
+2
diff --git a/codea/mrstrcmp_02.0 b/codea/mrstrcmp_02.0
new file mode 100644 (file)
index 0000000..1c4c7f2
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return v;
+end;
+
diff --git a/codea/mrstrcmp_02.call b/codea/mrstrcmp_02.call
new file mode 100644 (file)
index 0000000..c57834a
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(v, NULL) == v[1]);
+
diff --git a/codea/mrstrcmp_02.instr b/codea/mrstrcmp_02.instr
new file mode 100644 (file)
index 0000000..0cfbf08
--- /dev/null
@@ -0,0 +1 @@
+2
diff --git a/codea/mrstrcmp_03.0 b/codea/mrstrcmp_03.0
new file mode 100644 (file)
index 0000000..ac311d3
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return w;
+end;
+
diff --git a/codea/mrstrcmp_03.call b/codea/mrstrcmp_03.call
new file mode 100644 (file)
index 0000000..227a120
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(v, NULL) == v[2]);
+
diff --git a/codea/mrstrcmp_03.instr b/codea/mrstrcmp_03.instr
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/codea/mrstrcmp_04.0 b/codea/mrstrcmp_04.0
new file mode 100644 (file)
index 0000000..c600cab
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return x;
+end;
+
diff --git a/codea/mrstrcmp_04.call b/codea/mrstrcmp_04.call
new file mode 100644 (file)
index 0000000..685043f
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(v, NULL) == v[3]);
+
diff --git a/codea/mrstrcmp_04.instr b/codea/mrstrcmp_04.instr
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/codea/mrstrcmp_05.0 b/codea/mrstrcmp_05.0
new file mode 100644 (file)
index 0000000..ad12c0b
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return this.x;
+end;
+
diff --git a/codea/mrstrcmp_05.call b/codea/mrstrcmp_05.call
new file mode 100644 (file)
index 0000000..685043f
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(v, NULL) == v[3]);
+
diff --git a/codea/mrstrcmp_05.instr b/codea/mrstrcmp_05.instr
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/codea/mrstrcmp_06.0 b/codea/mrstrcmp_06.0
new file mode 100644 (file)
index 0000000..112dc7a
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return a.v;
+end;
+
diff --git a/codea/mrstrcmp_06.call b/codea/mrstrcmp_06.call
new file mode 100644 (file)
index 0000000..fec17fd
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(NULL, v) == v[1]);
+
diff --git a/codea/mrstrcmp_06.instr b/codea/mrstrcmp_06.instr
new file mode 100644 (file)
index 0000000..0cfbf08
--- /dev/null
@@ -0,0 +1 @@
+2
diff --git a/codea/mrstrcmp_07.0 b/codea/mrstrcmp_07.0
new file mode 100644 (file)
index 0000000..59fefe2
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return a.w;
+end;
+
diff --git a/codea/mrstrcmp_07.call b/codea/mrstrcmp_07.call
new file mode 100644 (file)
index 0000000..8b9f053
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(NULL, v) == v[2]);
+
diff --git a/codea/mrstrcmp_07.instr b/codea/mrstrcmp_07.instr
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/codea/mrstrcmp_08.0 b/codea/mrstrcmp_08.0
new file mode 100644 (file)
index 0000000..63d2815
--- /dev/null
@@ -0,0 +1,8 @@
+struct
+       u v w x y z
+end;
+
+method f(a)
+       return (a - (-8 * 4) ).v;
+end;
+
diff --git a/codea/mrstrcmp_08.call b/codea/mrstrcmp_08.call
new file mode 100644 (file)
index 0000000..ee3ad06
--- /dev/null
@@ -0,0 +1,6 @@
+long f(long *, long *);
+
+long v[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
+
+RET(f(NULL, v) == v[5]);
+
diff --git a/codea/mrstrcmp_08.instr b/codea/mrstrcmp_08.instr
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/codea/mrstrcmp_09.0 b/codea/mrstrcmp_09.0
new file mode 100644 (file)
index 0000000..cc32430
--- /dev/null
@@ -0,0 +1,3 @@
+method f(a b)
+       return a - b;
+end;
diff --git a/codea/mrstrcmp_09.call b/codea/mrstrcmp_09.call
new file mode 100644 (file)
index 0000000..27d2e6f
--- /dev/null
@@ -0,0 +1,4 @@
+long f(long, long, long);
+
+RET(f(0, 20, 10) ==  10 &&
+    f(0, 10, 20) == -10);
diff --git a/codea/mrstrcmp_09.instr b/codea/mrstrcmp_09.instr
new file mode 100644 (file)
index 0000000..1e8b314
--- /dev/null
@@ -0,0 +1 @@
+6
diff --git a/codea/mrstrcmp_10.0 b/codea/mrstrcmp_10.0
new file mode 100644 (file)
index 0000000..f01fa2b
--- /dev/null
@@ -0,0 +1,3 @@
+method f(a b)
+       return 20 - b;
+end;
diff --git a/codea/mrstrcmp_10.call b/codea/mrstrcmp_10.call
new file mode 100644 (file)
index 0000000..0b6c75e
--- /dev/null
@@ -0,0 +1,5 @@
+long f(long, long, long);
+
+RET(f(0, 0, 10) ==  10 &&
+    f(0, 0, 20) ==   0 &&
+    f(0, 0, 30) == -10);
diff --git a/codea/mrstrcmp_10.instr b/codea/mrstrcmp_10.instr
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/codea/mrstrcmp_11.0 b/codea/mrstrcmp_11.0
new file mode 100644 (file)
index 0000000..0beb6dc
--- /dev/null
@@ -0,0 +1,3 @@
+method f(a b)
+       return b - 20;
+end;
diff --git a/codea/mrstrcmp_11.call b/codea/mrstrcmp_11.call
new file mode 100644 (file)
index 0000000..995bbed
--- /dev/null
@@ -0,0 +1,5 @@
+long f(long, long, long);
+
+RET(f(0, 0, 10) == -10 &&
+    f(0, 0, 20) ==   0 &&
+    f(0, 0, 30) ==  10);
diff --git a/codea/mrstrcmp_11.instr b/codea/mrstrcmp_11.instr
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/codea/mrstrcmp_12.0 b/codea/mrstrcmp_12.0
new file mode 100644 (file)
index 0000000..3104add
--- /dev/null
@@ -0,0 +1,3 @@
+method f(a b)
+       return a - (10 - b) - 20;
+end;
diff --git a/codea/mrstrcmp_12.call b/codea/mrstrcmp_12.call
new file mode 100644 (file)
index 0000000..ff29661
--- /dev/null
@@ -0,0 +1,5 @@
+long f(long, long, long);
+
+RET(f(0, 10, 20) == (10 - (10 - 20) - 20) &&
+    f(0, 40, 20) == (40 - (10 - 20) - 20) &&
+    f(0,  0, 30) == ( 0 - (10 - 30) - 20));
diff --git a/codea/mrstrcmp_12.instr b/codea/mrstrcmp_12.instr
new file mode 100644 (file)
index 0000000..3c03207
--- /dev/null
@@ -0,0 +1 @@
+18
diff --git a/codea/mrstrcmp_13.0 b/codea/mrstrcmp_13.0
new file mode 100644 (file)
index 0000000..84dfd8c
--- /dev/null
@@ -0,0 +1,19 @@
+method f1(a b)
+       return a - (-1 * b);
+end;
+
+method f2(a b)
+       return a - (-2 * b);
+end;
+
+method f4(a b)
+       return a - (-4 * b);
+end;
+
+method f8(a b)
+       return a - (-8 * b);
+end;
+
+method  f(a b c d)
+       return a - (-8 * (b - (-4 * (c - (-2 * d)))));
+end;
diff --git a/codea/mrstrcmp_13.call b/codea/mrstrcmp_13.call
new file mode 100644 (file)
index 0000000..91ca672
--- /dev/null
@@ -0,0 +1,55 @@
+#define F1(a,b)     ((long)(a) - (-1UL * (long)(b)))
+#define F2(a,b)     ((long)(a) - (-2UL * (long)(b)))
+#define F4(a,b)     ((long)(a) - (-4UL * (long)(b)))
+#define F8(a,b)     ((long)(a) - (-8UL * (long)(b)))
+#define  F(a,b,c,d) ((long)(a) - (-8UL * ((long)(b) - (-4UL * ((long)(c) - (-2UL * (long)(d)))))))
+
+long f1(long, long, long);
+long f2(long, long, long);
+long f4(long, long, long);
+long f8(long, long, long);
+long  f(long, long, long, long, long);
+
+RET(f1(0,    3,  20) == F1(   3,  20) &&
+    f1(0, -100,  80) == F1(-100,  80) &&
+    f1(0,   50,  -9) == F1(  50,  -9) &&
+    f1(0,  -77, -50) == F1( -77, -50) &&
+
+    f2(0,    3,  20) == F2(   3,  20) &&
+    f2(0, -100,  80) == F2(-100,  80) &&
+    f2(0,   50,  -9) == F2(  50,  -9) &&
+    f2(0,  -77, -50) == F2( -77, -50) &&
+
+    f4(0,    3,  20) == F4(   3,  20) &&
+    f4(0, -100,  80) == F4(-100,  80) &&
+    f4(0,   50,  -9) == F4(  50,  -9) &&
+    f4(0,  -77, -50) == F4( -77, -50) &&
+
+    f8(0,    3,  20) == F8(   3,  20) &&
+    f8(0, -100,  80) == F8(-100,  80) &&
+    f8(0,   50,  -9) == F8(  50,  -9) &&
+    f8(0,  -77, -50) == F8( -77, -50) &&
+
+     f(0,  10,  20,  30,  40) == F( 10,  20,  30,  40) &&
+     f(0, -10,  20, -30,  40) == F(-10,  20, -30,  40) &&
+     f(0,  10, -20,  30, -40) == F( 10, -20,  30, -40) &&
+     f(0, -10, -20, -30, -40) == F(-10, -20, -30, -40) &&
+
+    f1(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F1(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+    f2(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F2(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+    f4(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F4(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+    f8(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F8(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+
+    f1(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F1(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
+    f2(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F2(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
+    f4(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F4(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
+    f8(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F8(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL));
+
diff --git a/codea/mrstrcmp_13.instr b/codea/mrstrcmp_13.instr
new file mode 100644 (file)
index 0000000..900731f
--- /dev/null
@@ -0,0 +1 @@
+64
diff --git a/codea/mrstrcmp_14.0 b/codea/mrstrcmp_14.0
new file mode 100644 (file)
index 0000000..0d0c4d5
--- /dev/null
@@ -0,0 +1,19 @@
+method f1(a b)
+       return a - (b * -1);
+end;
+
+method f2(a b)
+       return a - (b * -2);
+end;
+
+method f4(a b)
+       return a - (b * -4);
+end;
+
+method f8(a b)
+       return a - (b * -8);
+end;
+
+method  f(a b c d)
+       return a - ((b - ((c - (d * -2)) * -4)) * -8);
+end;
diff --git a/codea/mrstrcmp_14.call b/codea/mrstrcmp_14.call
new file mode 100644 (file)
index 0000000..91ca672
--- /dev/null
@@ -0,0 +1,55 @@
+#define F1(a,b)     ((long)(a) - (-1UL * (long)(b)))
+#define F2(a,b)     ((long)(a) - (-2UL * (long)(b)))
+#define F4(a,b)     ((long)(a) - (-4UL * (long)(b)))
+#define F8(a,b)     ((long)(a) - (-8UL * (long)(b)))
+#define  F(a,b,c,d) ((long)(a) - (-8UL * ((long)(b) - (-4UL * ((long)(c) - (-2UL * (long)(d)))))))
+
+long f1(long, long, long);
+long f2(long, long, long);
+long f4(long, long, long);
+long f8(long, long, long);
+long  f(long, long, long, long, long);
+
+RET(f1(0,    3,  20) == F1(   3,  20) &&
+    f1(0, -100,  80) == F1(-100,  80) &&
+    f1(0,   50,  -9) == F1(  50,  -9) &&
+    f1(0,  -77, -50) == F1( -77, -50) &&
+
+    f2(0,    3,  20) == F2(   3,  20) &&
+    f2(0, -100,  80) == F2(-100,  80) &&
+    f2(0,   50,  -9) == F2(  50,  -9) &&
+    f2(0,  -77, -50) == F2( -77, -50) &&
+
+    f4(0,    3,  20) == F4(   3,  20) &&
+    f4(0, -100,  80) == F4(-100,  80) &&
+    f4(0,   50,  -9) == F4(  50,  -9) &&
+    f4(0,  -77, -50) == F4( -77, -50) &&
+
+    f8(0,    3,  20) == F8(   3,  20) &&
+    f8(0, -100,  80) == F8(-100,  80) &&
+    f8(0,   50,  -9) == F8(  50,  -9) &&
+    f8(0,  -77, -50) == F8( -77, -50) &&
+
+     f(0,  10,  20,  30,  40) == F( 10,  20,  30,  40) &&
+     f(0, -10,  20, -30,  40) == F(-10,  20, -30,  40) &&
+     f(0,  10, -20,  30, -40) == F( 10, -20,  30, -40) &&
+     f(0, -10, -20, -30, -40) == F(-10, -20, -30, -40) &&
+
+    f1(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F1(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+    f2(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F2(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+    f4(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F4(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+    f8(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
+       F8(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
+
+    f1(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F1(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
+    f2(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F2(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
+    f4(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F4(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
+    f8(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
+       F8(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL));
+
diff --git a/codea/mrstrcmp_14.instr b/codea/mrstrcmp_14.instr
new file mode 100644 (file)
index 0000000..900731f
--- /dev/null
@@ -0,0 +1 @@
+64
diff --git a/codea/mrstrcmp_15.0 b/codea/mrstrcmp_15.0
new file mode 100644 (file)
index 0000000..f175bdc
--- /dev/null
@@ -0,0 +1,3 @@
+method f(a b)
+       return (a or 0x0A) or (0x50 or b);
+end;
diff --git a/codea/mrstrcmp_15.call b/codea/mrstrcmp_15.call
new file mode 100644 (file)
index 0000000..f61301e
--- /dev/null
@@ -0,0 +1,4 @@
+long f(long, long, long);
+
+RET(f(0, 0x00, 0x00) == 0x5A);
+
diff --git a/codea/mrstrcmp_15.instr b/codea/mrstrcmp_15.instr
new file mode 100644 (file)
index 0000000..1e8b314
--- /dev/null
@@ -0,0 +1 @@
+6
diff --git a/codea/mrstrcmp_16.0 b/codea/mrstrcmp_16.0
new file mode 100644 (file)
index 0000000..ec04302
--- /dev/null
@@ -0,0 +1,3 @@
+method f(a b)
+       return (a = 0x0A) = (0x50 = b);
+end;
diff --git a/codea/mrstrcmp_16.call b/codea/mrstrcmp_16.call
new file mode 100644 (file)
index 0000000..723a087
--- /dev/null
@@ -0,0 +1,7 @@
+long f(long, long, long);
+
+RET(f(0, 0x00, 0x00) == 1 &&
+    f(0, 0x0A, 0xFF) == 0 &&
+    f(0, 0xFF, 0x50) == 0 &&
+    f(0, 0x0A, 0x50) == 1);
+
diff --git a/codea/mrstrcmp_16.instr b/codea/mrstrcmp_16.instr
new file mode 100644 (file)
index 0000000..425151f
--- /dev/null
@@ -0,0 +1 @@
+40
diff --git a/codea/mrstrcmp_17.0 b/codea/mrstrcmp_17.0
new file mode 100644 (file)
index 0000000..209c6f5
--- /dev/null
@@ -0,0 +1,16 @@
+method f(a)
+       return (a < 0x0A);
+end;
+
+method g(a)
+       return (0x0A < a);
+end;
+
+method h()
+       return (0x0A < 0x09);
+end;
+
+method i()
+       return (0x0A < 0x0B);
+end;
+
diff --git a/codea/mrstrcmp_17.call b/codea/mrstrcmp_17.call
new file mode 100644 (file)
index 0000000..df80c78
--- /dev/null
@@ -0,0 +1,18 @@
+long f(long, long);
+long g(long, long);
+long h(long);
+long i(long);
+
+RET(f(0,  0x05) == 1 &&
+    f(0, -0x05) == 1 &&
+    f(0,  0x0A) == 0 &&
+    f(0,  0x0B) == 0 &&
+
+    g(0,  0x05) == 0 &&
+    g(0, -0x05) == 0 &&
+    g(0,  0x0A) == 0 &&
+    g(0,  0x0B) == 1 &&
+
+    h(0)        == 0 &&
+    i(0)        == 1);
+
diff --git a/codea/mrstrcmp_17.instr b/codea/mrstrcmp_17.instr
new file mode 100644 (file)
index 0000000..7facc89
--- /dev/null
@@ -0,0 +1 @@
+36