ops.c 4.4 KB

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