1 %__intern_LC0 = global [sbyte] c"Ack(3, \00"
2 %__intern_LC1 = global [sbyte] c") = \00"
3 %__intern_LC2 = global [sbyte] c"\0A\00" ; <[15 x sbyte] *> [#uses=1]
6 declare void "__main"()
8 declare void "printVal"([sbyte] *)
9 declare void "printVal"(int)
11 declare int "atoi"(sbyte *)
13 int "main"(int %argc, sbyte * * %argv)
16 call void () * %__main( )
17 %cond1002 = setne int %argc, 2 ; <bool> [#uses=1]
18 br bool %cond1002, label %bb4, label %bb2
21 %cast1010 = cast ulong 8 to sbyte * * ; <sbyte * *> [#uses=1]
22 %reg1003 = add sbyte * * %argv, %cast1010 ; <sbyte * *> [#uses=1]
23 %reg110 = load sbyte * * %reg1003 ; <sbyte *> [#uses=1]
24 %reg109 = call int (sbyte *) * %atoi( sbyte * %reg110 ) ; <int> [#uses=1]
28 %reg132 = phi int [ %reg109, %bb2 ], [ 5, %bb1 ] ; <int> [#uses=4]
29 %cond1004 = setne ulong 3, 0 ; <bool> [#uses=1]
30 br bool %cond1004, label %bb6, label %bb5
33 %reg115 = add int %reg132, 1 ; <int> [#uses=1]
37 %cond1005 = setne int %reg132, 0 ; <bool> [#uses=1]
38 br bool %cond1005, label %bb8, label %bb7
41 %cast1006 = cast ulong 1 to int ; <int> [#uses=1]
42 %cast1007 = cast ulong 2 to int ; <int> [#uses=1]
43 %reg119 = call int (int, int) * %Ack( int %cast1007, int %cast1006 ) ; <int> [#uses=1]
47 %reg121 = add int %reg132, -1 ; <int> [#uses=1]
48 %cast1008 = cast ulong 3 to int ; <int> [#uses=1]
49 %reg122 = call int (int, int) * %Ack( int %cast1008, int %reg121 ) ; <int> [#uses=1]
50 %cast1009 = cast ulong 2 to int ; <int> [#uses=1]
51 %reg124 = call int (int, int) * %Ack( int %cast1009, int %reg122 ) ; <int> [#uses=1]
55 %reg135 = phi int [ %reg124, %bb8 ], [ %reg119, %bb7 ], [ %reg115, %bb5 ] ; <int> [#uses=1]
56 call void %printVal([sbyte] *%__intern_LC0)
57 call void %printVal(int %reg132)
58 call void %printVal([sbyte] *%__intern_LC1)
59 call void %printVal(int %reg135)
60 call void %printVal([sbyte] *%__intern_LC2)
64 int "Ack"(int %M, int %N)
70 %reg121 = phi int [ %reg117, %bb6 ], [ 1, %bb5 ], [ %N, %bb1 ] ; <int> [#uses=3]
71 %reg122 = phi int [ %reg115, %bb6 ], [ %reg123, %bb5 ], [ %M, %bb1 ] ; <int> [#uses=4]
72 %cond1000 = setne int %reg122, 0 ; <bool> [#uses=1]
73 br bool %cond1000, label %bb4, label %bb3
76 %reg109 = add int %reg121, 1 ; <int> [#uses=1]
80 %cond1001 = setne int %reg121, 0 ; <bool> [#uses=1]
81 br bool %cond1001, label %bb6, label %bb5
84 %reg123 = add int %reg122, -1 ; <int> [#uses=1]
88 %reg115 = add int %reg122, -1 ; <int> [#uses=1]
89 %reg116 = add int %reg121, -1 ; <int> [#uses=1]
90 %reg117 = call int (int, int) * %Ack( int %reg122, int %reg116 ) ; <int> [#uses=1]