ref: 4cd3b53a109cfc9c02c2ff15a8f60cb658a4b574
parent: 560dd3edc56c0a0baf08804246e57fb8006d3a87
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Fri Aug 14 15:01:04 EDT 2015
Add tests for integer operations
--- /dev/null
+++ b/cc1/tests/test004.c
@@ -1,0 +1,55 @@
+/*
+name: TEST004
+description: Test integer operations
+output:
+F1
+X1 F1 main
+G1 F1 main {
+-
+A2 I x
+ A2 #I0 :I
+ A2 A2 #I2 +I :I
+ A2 A2 #I1 -I :I
+ A2 A2 #I6 *I :I
+ A2 A2 #I2 /I :I
+ A2 A2 #I2 %I :I
+ A2 A2 #I2 lI :I
+ A2 A2 #I1 rI :I
+ A2 A2 #IFF |I :I
+ A2 A2 #I3 &I :I
+ A2 A2 #I1 ^I :I
+ A2 A2 A2 #I1 >I #I1 #I0 ?I +I :I
+ A2 A2 A2 #I3 <I #I1 #I0 ?I +I :I
+ A2 A2 A2 #I1 >I #I1 #I0 ?I +I :I
+ A2 A2 A2 #I4 <I #I1 #I0 ?I +I :I
+ j L0 A2 #I4 =I
+ yI #I1
+L0
+ yI #I0
+}
+*/
+
+int
+main()
+{
+ int x;
+
+ x = 0;
+ x = x + 2; // 2
+ x = x - 1; // 1
+ x = x * 6; // 6
+ x = x / 2; // 3
+ x = x % 2; // 1
+ x = x << 2; // 4
+ x = x >> 1; // 2
+ x = x | 255; // 255
+ x = x & 3; // 3
+ x = x ^ 1; // 2
+ x = x + (x > 1); // 2
+ x = x + (x < 3); // 2
+ x = x + (x > 1); // 3
+ x = x + (x < 4); // 4
+ if(x != 4)
+ return 1;
+ return 0;
+}
\ No newline at end of file
--- /dev/null
+++ b/cc1/tests/test005.c
@@ -1,0 +1,36 @@
+/*
+name: TEST005
+description: Test unary integer operations
+output:
+F1
+X1 F1 main
+G1 F1 main {
+-
+A2 I x
+ A2 #I3 :I
+ A2 A2 #I0 =I #I1 #I0 ?I :I
+ A2 A2 #I0 =I #I1 #I0 ?I :I
+ A2 A2 ~I :I
+ A2 A2 _I :I
+ j L0 A2 #I2 =I
+ yI #I1
+L0
+ yI #I0
+}
+*/
+
+
+int
+main()
+{
+ int x;
+
+ x = 3;
+ x = !x; // 0
+ x = !x; // 1
+ x = ~x; // -1
+ x = -x; // 2
+ if(x != 2)
+ return 1;
+ return 0;
+}