Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / ctest / ctdivers / ops.c
1 /*
2  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3  * See the copyright notice in the ACK home directory, in the file "Copyright".
4  *
5  */
6
7 /* Author: E.G. Keizer */
8
9 char rcs_id[] = "$Id: ops.c,v 2.5 1994/06/24 12:07:51 ceriel Exp $" ;
10
11 main() {
12
13         assnull() ;
14         ushift() ;
15         lshift() ;
16         uadd() ;
17         return 0 ;
18 }
19
20 int a,b ;
21 assnull() {
22         int c,d ;
23         /* test a few cases handled especially by the cem-compiler */
24
25         a= -1 ; b= -1 ; c= -1 ; d = -1 ;
26
27         a=b=0 ;
28         c=d=0 ;
29         printf("a %d, b %d, c %d, d %d\n",a,b,c,d) ;
30         a = b = c = d = -32 ;
31         printf (" (a=0) %d, (c=0) %d\n",(a=0),(c=0) ) ;
32         printf("a %d, b %d, c %d, d %d\n",a,b,c,d) ;
33
34 }
35 ushift() {
36         unsigned u ;
37
38         printf("Unsigned shifts by constants\n") ;
39         u = 0150715 ;
40         printf(" u = %6o\n",u) ;
41         printf(" u>>0  %6o\n", u>>0 ) ;
42         printf(" u>>1  %6o\n", u>>1 ) ;
43         printf(" u>>2  %6o\n", u>>2 ) ;
44         printf(" u>>3  %6o\n", u>>3 ) ;
45         printf(" u>>4  %6o\n", u>>4 ) ;
46         printf(" u>>5  %6o\n", u>>5 ) ;
47         printf(" u>>6  %6o\n", u>>6 ) ;
48         printf(" u>>7  %6o\n", u>>7 ) ;
49         printf(" u>>8  %6o\n", u>>8 ) ;
50         printf(" u>>9  %6o\n", u>>9 ) ;
51         printf(" u>>10 %6o\n", u>>10 ) ;
52         printf(" u>>11 %6o\n", u>>11 ) ;
53         printf(" u>>12 %6o\n", u>>12 ) ;
54         printf(" u>>13 %6o\n", u>>13 ) ;
55         printf(" u>>14 %6o\n", u>>14 ) ;
56         printf(" u>>15 %6o\n", u>>15 ) ;
57         if (sizeof(unsigned) > 2) printf(" u>>16 %6o\n", u>>16 ) ;
58         printf(" u<<0  %6o\n", u<<0 ) ;
59         printf(" u<<1  %6o\n", u<<1 ) ;
60         printf(" u<<2  %6o\n", u<<2 ) ;
61         printf(" u<<3  %6o\n", u<<3 ) ;
62         printf(" u<<4  %6o\n", u<<4 ) ;
63         printf(" u<<5  %6o\n", u<<5 ) ;
64         printf(" u<<6  %6o\n", u<<6 ) ;
65         printf(" u<<7  %6o\n", u<<7 ) ;
66         printf(" u<<8  %6o\n", u<<8 ) ;
67         printf(" u<<9  %6o\n", u<<9 ) ;
68         printf(" u<<10 %6o\n", u<<10 ) ;
69         printf(" u<<11 %6o\n", u<<11 ) ;
70         printf(" u<<12 %6o\n", u<<12 ) ;
71         printf(" u<<13 %6o\n", u<<13 ) ;
72         printf(" u<<14 %6o\n", u<<14 ) ;
73         printf(" u<<15 %6o\n", u<<15 ) ;
74         if (sizeof(unsigned) > 2) printf(" u<<16 %6o\n", u<<16 ) ;
75 }
76
77 lshift() {
78         long ll ;
79
80         printf("Long shifts by constants\n") ;
81         ll = 400000L - 0532 ;
82         printf(" ll = %11lo\n",ll) ;
83         printf(" ll>>0  %11lo\n", ll>>0 ) ;
84         printf(" ll>>1  %11lo\n", ll>>1 ) ;
85         printf(" ll>>2  %11lo\n", ll>>2 ) ;
86         printf(" ll>>3  %11lo\n", ll>>3 ) ;
87         printf(" ll>>4  %11lo\n", ll>>4 ) ;
88         printf(" ll>>5  %11lo\n", ll>>5 ) ;
89         printf(" ll>>6  %11lo\n", ll>>6 ) ;
90         printf(" ll>>7  %11lo\n", ll>>7 ) ;
91         printf(" ll>>8  %11lo\n", ll>>8 ) ;
92         printf(" ll>>9  %11lo\n", ll>>9 ) ;
93         printf(" ll>>10 %11lo\n", ll>>10 ) ;
94         printf(" ll>>11 %11lo\n", ll>>11 ) ;
95         printf(" ll>>12 %11lo\n", ll>>12 ) ;
96         printf(" ll>>13 %11lo\n", ll>>13 ) ;
97         printf(" ll>>14 %11lo\n", ll>>14 ) ;
98         printf(" ll>>15 %11lo\n", ll>>15 ) ;
99         printf(" ll>>16 %11lo\n", ll>>16 ) ;
100         printf(" ll>>17 %11lo\n", ll>>17 ) ;
101         printf(" ll>>18 %11lo\n", ll>>18 ) ;
102         printf(" ll>>19 %11lo\n", ll>>19 ) ;
103         printf(" ll>>20 %11lo\n", ll>>20 ) ;
104         printf(" ll>>21 %11lo\n", ll>>21 ) ;
105         printf(" ll>>22 %11lo\n", ll>>22 ) ;
106         printf(" ll>>23 %11lo\n", ll>>23 ) ;
107         printf(" ll>>24 %11lo\n", ll>>24 ) ;
108         printf(" ll>>25 %11lo\n", ll>>25 ) ;
109         printf(" ll>>26 %11lo\n", ll>>26 ) ;
110         printf(" ll>>27 %11lo\n", ll>>27 ) ;
111         printf(" ll>>28 %11lo\n", ll>>28 ) ;
112         printf(" ll>>29 %11lo\n", ll>>29 ) ;
113         printf(" ll>>30 %11lo\n", ll>>30 ) ;
114         printf(" ll>>31 %11lo\n", ll>>31 ) ;
115         ll = 1 ;
116         printf(" ll<<0  %11lo\n", ll<<0 ) ;
117         printf(" ll<<1  %11lo\n", ll<<1 ) ;
118         printf(" ll<<2  %11lo\n", ll<<2 ) ;
119         printf(" ll<<3  %11lo\n", ll<<3 ) ;
120         printf(" ll<<4  %11lo\n", ll<<4 ) ;
121         printf(" ll<<5  %11lo\n", ll<<5 ) ;
122         printf(" ll<<6  %11lo\n", ll<<6 ) ;
123         printf(" ll<<7  %11lo\n", ll<<7 ) ;
124         printf(" ll<<8  %11lo\n", ll<<8 ) ;
125         printf(" ll<<9  %11lo\n", ll<<9 ) ;
126         printf(" ll<<10 %11lo\n", ll<<10 ) ;
127         printf(" ll<<11 %11lo\n", ll<<11 ) ;
128         printf(" ll<<12 %11lo\n", ll<<12 ) ;
129         printf(" ll<<13 %11lo\n", ll<<13 ) ;
130         printf(" ll<<14 %11lo\n", ll<<14 ) ;
131         printf(" ll<<15 %11lo\n", ll<<15 ) ;
132         printf(" ll<<16 %11lo\n", ll<<16 ) ;
133         printf(" ll<<17 %11lo\n", ll<<17 ) ;
134         printf(" ll<<18 %11lo\n", ll<<18 ) ;
135         printf(" ll<<19 %11lo\n", ll<<19 ) ;
136         printf(" ll<<20 %11lo\n", ll<<20 ) ;
137         printf(" ll<<21 %11lo\n", ll<<21 ) ;
138         printf(" ll<<22 %11lo\n", ll<<22 ) ;
139         printf(" ll<<23 %11lo\n", ll<<23 ) ;
140         printf(" ll<<24 %11lo\n", ll<<24 ) ;
141         printf(" ll<<25 %11lo\n", ll<<25 ) ;
142         printf(" ll<<26 %11lo\n", ll<<26 ) ;
143         printf(" ll<<27 %11lo\n", ll<<27 ) ;
144         printf(" ll<<28 %11lo\n", ll<<28 ) ;
145         printf(" ll<<29 %11lo\n", ll<<29 ) ;
146         printf(" ll<<30 %11lo\n", ll<<30 ) ;
147 }
148 uadd() {
149         unsigned u ;
150         int i ;
151
152         u = 32760 ;
153         for ( i=0 ; i<=16 ; ++i ) {
154                 printf("%2d %6o\n",i,u+i) ;
155         }
156 }