move backend into libfirm
[libfirm] / ir / be / test / Int.c
1 /*
2  * Project:     GCC-firm
3  * File name:   test/Int.c
4  * Purpose:     smallest possible Java program
5  * Author:      Boris Boesler
6  * Modified by: Michael Beck
7  * Created:     XX.08.2001
8  * CVS-ID:      $Id$
9  * Copyright:   (c) 2001 Universitaet Karlsruhe
10  * Licence:
11  */
12
13 #include <stdio.h>
14
15 static int hide_int (int i) { /* to cancel out optimization */
16     return i;
17 }
18
19 int main (int argc, char *argv[]) {
20     int imax  =  2147483647;    /* java.lang.Integer.MAX_VALUE */
21     int imin1 = -2147483647;     /* java.lang.Integer.MIN_VALUE+1 */
22     int imin  = -2147483648;     /* java.lang.Integer.MIN_VALUE */
23     int i;
24
25     printf("Int.c\n");
26
27     printf(" Extreme constant integer values allowed in C:\n");
28     printf("  Integer.MAX_VALUE   ( 2147483647) = %d\n", imax);
29     printf("  Integer.MIN_VALUE-1 (-2147483647) = %d\n", imin1);
30     printf("  Integer.MIN_VALUE   (-2147483648) = %d\n", imin);
31
32     printf("\n Computations with integers:\n");
33     i = 2147483647 - hide_int(147483647);      /* to cancel out optimization */
34     printf("  i = 2147483647 - 147483647 (2000000000): %d\n", i);
35     i = i / 5;
36     printf("  i = i / 5 (400000000): %d\n", i);
37     i = i * -2;
38     printf("  i = i * -2 (-800000000): %d\n", i);
39     i = i + 12344321;
40     printf("  i = i + 12344321 (-787655679): %d\n", i);
41     i = i % 100000000;
42     printf("  i = i %% 100000000 (-87655679): %d\n", i);
43
44     printf("\n Computations exceeding the maximal values:\n");
45     i = imax + 1;
46     printf("  i = imax + 1 () : %d\n", i);
47     i = imax * 2;
48     printf("  i = imax * 2 () : %d\n", i);
49     i = imax - 1;
50     printf("  i = imin - 1 () : %d\n", i);
51     i = imin * 2;
52     printf("  i = imin * 2 () : %d\n", i);
53
54     return 0;
55 }