@begin: scope:[]  from
  [0] phi()
  to:@32
@32: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @32
  [3] phi()
main: scope:[main]  from @32
  [4] phi()
  [5] call print_cls 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call test_8u 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call test_16u 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [10] phi()
  [11] call test_8s 
  to:main::@4
main::@4: scope:[main]  from main::@3
  [12] phi()
  [13] call test_16s 
  to:main::@return
main::@return: scope:[main]  from main::@4
  [14] return 
  to:@return
test_16s: scope:[test_16s]  from main::@4
  [15] phi()
  to:test_16s::@1
test_16s::@1: scope:[test_16s]  from test_16s test_16s::@11
  [16] (byte) test_16s::i#10 ← phi( test_16s/(byte/signed byte/word/signed word/dword/signed dword) 0 test_16s::@11/(byte) test_16s::i#1 )
  [17] (signed word) test_16s::dividend#0 ← *((const signed word[]) test_16s::dividends#0 + (byte) test_16s::i#10)
  [18] (signed word) test_16s::divisor#0 ← *((const signed word[]) test_16s::divisors#0 + (byte) test_16s::i#10)
  [19] (signed word) div16s::dividend#0 ← (signed word) test_16s::dividend#0
  [20] (signed word) div16s::divisor#0 ← (signed word) test_16s::divisor#0
  [21] call div16s 
  [22] (signed word) div16s::return#2 ← (signed word) div16s::return#0
  to:test_16s::@3
test_16s::@3: scope:[test_16s]  from test_16s::@1
  [23] (signed word) test_16s::res#0 ← (signed word) div16s::return#2
  [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0
  [25] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1
  [26] call print_sword 
  to:test_16s::@4
test_16s::@4: scope:[test_16s]  from test_16s::@3
  [27] phi()
  [28] call print_str 
  to:test_16s::@5
test_16s::@5: scope:[test_16s]  from test_16s::@4
  [29] (signed word) print_sword::w#2 ← (signed word) test_16s::divisor#0
  [30] call print_sword 
  to:test_16s::@6
test_16s::@6: scope:[test_16s]  from test_16s::@5
  [31] phi()
  [32] call print_str 
  to:test_16s::@7
test_16s::@7: scope:[test_16s]  from test_16s::@6
  [33] (signed word) print_sword::w#3 ← (signed word) test_16s::res#0
  [34] call print_sword 
  to:test_16s::@8
test_16s::@8: scope:[test_16s]  from test_16s::@7
  [35] phi()
  [36] call print_str 
  to:test_16s::@9
test_16s::@9: scope:[test_16s]  from test_16s::@8
  [37] (signed word) print_sword::w#4 ← (signed word) rem16s#11
  [38] call print_sword 
  to:test_16s::@10
test_16s::@10: scope:[test_16s]  from test_16s::@9
  [39] phi()
  [40] call print_ln 
  to:test_16s::@11
test_16s::@11: scope:[test_16s]  from test_16s::@10
  [41] (byte) test_16s::i#1 ← (byte) test_16s::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2
  [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1
  to:test_16s::@return
test_16s::@return: scope:[test_16s]  from test_16s::@11
  [43] return 
  to:@return
print_ln: scope:[print_ln]  from test_16s::@10 test_16u::@10 test_8s::@10 test_8u::@10
  [44] (byte*) print_line_cursor#39 ← phi( test_16s::@10/(byte*) print_line_cursor#1 test_16u::@10/(byte*) print_line_cursor#1 test_8s::@10/(byte*) print_line_cursor#1 test_8u::@10/(byte*) print_line_cursor#41 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [45] (byte*) print_line_cursor#20 ← phi( print_ln/(byte*) print_line_cursor#39 print_ln::@1/(byte*) print_line_cursor#1 )
  [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40
  [47] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [48] return 
  to:@return
print_sword: scope:[print_sword]  from test_16s::@3 test_16s::@5 test_16s::@7 test_16s::@9
  [49] (byte*) print_char_cursor#131 ← phi( test_16s::@3/(byte*~) print_char_cursor#159 test_16s::@5/(byte*) print_char_cursor#128 test_16s::@7/(byte*) print_char_cursor#128 test_16s::@9/(byte*) print_char_cursor#128 )
  [49] (signed word) print_sword::w#5 ← phi( test_16s::@3/(signed word) print_sword::w#1 test_16s::@5/(signed word) print_sword::w#2 test_16s::@7/(signed word) print_sword::w#3 test_16s::@9/(signed word) print_sword::w#4 )
  [50] if((signed word) print_sword::w#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1
  to:print_sword::@2
print_sword::@2: scope:[print_sword]  from print_sword
  [51] phi()
  [52] call print_char 
  to:print_sword::@4
print_sword::@4: scope:[print_sword]  from print_sword::@2
  [53] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#5
  to:print_sword::@1
print_sword::@1: scope:[print_sword]  from print_sword print_sword::@4
  [54] (byte*) print_char_cursor#130 ← phi( print_sword/(byte*) print_char_cursor#131 print_sword::@4/(byte*) print_char_cursor#18 )
  [54] (signed word) print_sword::w#6 ← phi( print_sword/(signed word) print_sword::w#5 print_sword::@4/(signed word) print_sword::w#0 )
  [55] (word~) print_word::w#7 ← (word)(signed word) print_sword::w#6
  [56] call print_word 
  to:print_sword::@return
print_sword::@return: scope:[print_sword]  from print_sword::@1
  [57] return 
  to:@return
print_word: scope:[print_word]  from print_sword::@1 test_16u::@3 test_16u::@5 test_16u::@7 test_16u::@9
  [58] (byte*) print_char_cursor#135 ← phi( print_sword::@1/(byte*) print_char_cursor#130 test_16u::@3/(byte*~) print_char_cursor#166 test_16u::@5/(byte*) print_char_cursor#128 test_16u::@7/(byte*) print_char_cursor#128 test_16u::@9/(byte*) print_char_cursor#128 )
  [58] (word) print_word::w#5 ← phi( print_sword::@1/(word~) print_word::w#7 test_16u::@3/(word) print_word::w#1 test_16u::@5/(word) print_word::w#2 test_16u::@7/(word) print_word::w#3 test_16u::@9/(word) print_word::w#4 )
  [59] (byte) print_byte::b#1 ← > (word) print_word::w#5
  [60] call print_byte 
  to:print_word::@1
print_word::@1: scope:[print_word]  from print_word
  [61] (byte) print_byte::b#2 ← < (word) print_word::w#5
  [62] call print_byte 
  to:print_word::@return
print_word::@return: scope:[print_word]  from print_word::@1
  [63] return 
  to:@return
print_byte: scope:[print_byte]  from print_sbyte::@2 print_word print_word::@1 test_8u::@3 test_8u::@5 test_8u::@7 test_8u::@9
  [64] (byte*) print_char_cursor#136 ← phi( print_sbyte::@2/(byte*) print_char_cursor#18 print_word/(byte*) print_char_cursor#135 print_word::@1/(byte*) print_char_cursor#18 test_8u::@3/(byte*) print_char_cursor#138 test_8u::@5/(byte*) print_char_cursor#128 test_8u::@7/(byte*) print_char_cursor#128 test_8u::@9/(byte*) print_char_cursor#128 )
  [64] (byte) print_byte::b#7 ← phi( print_sbyte::@2/(byte~) print_byte::b#9 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 test_8u::@3/(byte) print_byte::b#3 test_8u::@5/(byte) print_byte::b#4 test_8u::@7/(byte) print_byte::b#5 test_8u::@9/(byte) print_byte::b#6 )
  [65] (byte~) print_byte::$0 ← (byte) print_byte::b#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4
  [66] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0)
  [67] call print_char 
  to:print_byte::@1
print_byte::@1: scope:[print_byte]  from print_byte
  [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15
  [69] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2)
  [70] call print_char 
  to:print_byte::@return
print_byte::@return: scope:[print_byte]  from print_byte::@1
  [71] return 
  to:@return
print_char: scope:[print_char]  from print_byte print_byte::@1 print_sbyte::@1 print_sbyte::@3 print_sword::@2
  [72] (byte*) print_char_cursor#82 ← phi( print_byte/(byte*) print_char_cursor#136 print_byte::@1/(byte*) print_char_cursor#18 print_sbyte::@1/(byte*) print_char_cursor#132 print_sbyte::@3/(byte*) print_char_cursor#132 print_sword::@2/(byte*) print_char_cursor#131 )
  [72] (byte) print_char::ch#5 ← phi( print_byte/(byte) print_char::ch#3 print_byte::@1/(byte) print_char::ch#4 print_sbyte::@1/(byte) '-' print_sbyte::@3/(byte) ' ' print_sword::@2/(byte) '-' )
  [73] *((byte*) print_char_cursor#82) ← (byte) print_char::ch#5
  [74] (byte*) print_char_cursor#18 ← ++ (byte*) print_char_cursor#82
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [75] return 
  to:@return
print_str: scope:[print_str]  from test_16s::@4 test_16s::@6 test_16s::@8 test_16u::@4 test_16u::@6 test_16u::@8 test_8s::@4 test_8s::@6 test_8s::@8 test_8u::@4 test_8u::@6 test_8u::@8
  [76] (byte*) print_str::str#15 ← phi( test_16s::@4/(const string) str test_16s::@6/(const string) str1 test_16s::@8/(const string) str2 test_16u::@4/(const string) str test_16u::@6/(const string) str1 test_16u::@8/(const string) str2 test_8s::@4/(const string) str test_8s::@6/(const string) str1 test_8s::@8/(const string) str2 test_8u::@4/(const string) str test_8u::@6/(const string) str1 test_8u::@8/(const string) str2 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@2
  [77] (byte*) print_char_cursor#128 ← phi( print_str/(byte*) print_char_cursor#18 print_str::@2/(byte*) print_char_cursor#1 )
  [77] (byte*) print_str::str#13 ← phi( print_str/(byte*) print_str::str#15 print_str::@2/(byte*) print_str::str#0 )
  [78] if(*((byte*) print_str::str#13)!=(byte) '@') goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [79] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [80] *((byte*) print_char_cursor#128) ← *((byte*) print_str::str#13)
  [81] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#128
  [82] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#13
  to:print_str::@1
div16s: scope:[div16s]  from test_16s::@1
  [83] (signed word) divr16s::dividend#0 ← (signed word) div16s::dividend#0
  [84] (signed word) divr16s::divisor#0 ← (signed word) div16s::divisor#0
  [85] call divr16s 
  [86] (signed word) divr16s::return#3 ← (signed word) divr16s::return#2
  to:div16s::@2
div16s::@2: scope:[div16s]  from div16s
  [87] (signed word) div16s::return#0 ← (signed word) divr16s::return#3
  to:div16s::@return
div16s::@return: scope:[div16s]  from div16s::@2
  [88] return 
  to:@return
divr16s: scope:[divr16s]  from div16s
  [89] if((signed word) divr16s::dividend#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@1
  to:divr16s::@17
divr16s::@17: scope:[divr16s]  from divr16s
  [90] (word~) divr16s::dividendu#8 ← (word)(signed word) divr16s::dividend#0
  to:divr16s::@2
divr16s::@2: scope:[divr16s]  from divr16s::@1 divr16s::@17
  [91] (word) divr16s::remu#3 ← phi( divr16s::@1/((word))-(const signed word) divr16s::rem#0 divr16s::@17/((word))(const signed word) divr16s::rem#0 )
  [91] (word) divr16s::dividendu#3 ← phi( divr16s::@1/(word~) divr16s::dividendu#7 divr16s::@17/(word~) divr16s::dividendu#8 )
  [91] (byte) divr16s::neg#3 ← phi( divr16s::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 divr16s::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 )
  [92] if((signed word) divr16s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@3
  to:divr16s::@18
divr16s::@18: scope:[divr16s]  from divr16s::@2
  [93] (word~) divr16s::divisoru#5 ← (word)(signed word) divr16s::divisor#0
  to:divr16s::@4
divr16s::@4: scope:[divr16s]  from divr16s::@18 divr16s::@3
  [94] (byte) divr16s::neg#4 ← phi( divr16s::@3/(byte) divr16s::neg#2 divr16s::@18/(byte) divr16s::neg#3 )
  [94] (word) divr16s::divisoru#3 ← phi( divr16s::@3/(word~) divr16s::divisoru#4 divr16s::@18/(word~) divr16s::divisoru#5 )
  [95] (word) divr16u::dividend#2 ← (word) divr16s::dividendu#3
  [96] (word) divr16u::divisor#1 ← (word) divr16s::divisoru#3
  [97] (word) divr16u::rem#4 ← (word) divr16s::remu#3
  [98] call divr16u 
  [99] (word) divr16u::return#3 ← (word) divr16u::return#0
  to:divr16s::@15
divr16s::@15: scope:[divr16s]  from divr16s::@4
  [100] (word) divr16s::resultu#0 ← (word) divr16u::return#3
  [101] if((byte) divr16s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@19
  to:divr16s::@11
divr16s::@11: scope:[divr16s]  from divr16s::@15
  [102] (signed word) rem16s#2 ← - (signed word)(word) rem16u#1
  [103] (signed word) divr16s::return#1 ← - (signed word)(word) divr16s::resultu#0
  to:divr16s::@return
divr16s::@return: scope:[divr16s]  from divr16s::@11 divr16s::@19
  [104] (signed word) rem16s#11 ← phi( divr16s::@11/(signed word) rem16s#2 divr16s::@19/(signed word~) rem16s#37 )
  [104] (signed word) divr16s::return#2 ← phi( divr16s::@11/(signed word) divr16s::return#1 divr16s::@19/(signed word~) divr16s::return#7 )
  [105] return 
  to:@return
divr16s::@19: scope:[divr16s]  from divr16s::@15
  [106] (signed word~) divr16s::return#7 ← (signed word)(word) divr16s::resultu#0
  [107] (signed word~) rem16s#37 ← (signed word)(word) rem16u#1
  to:divr16s::@return
divr16s::@3: scope:[divr16s]  from divr16s::@2
  [108] (signed word~) divr16s::$11 ← - (signed word) divr16s::divisor#0
  [109] (byte) divr16s::neg#2 ← (byte) divr16s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1
  [110] (word~) divr16s::divisoru#4 ← (word)(signed word~) divr16s::$11
  to:divr16s::@4
divr16s::@1: scope:[divr16s]  from divr16s
  [111] (signed word~) divr16s::$5 ← - (signed word) divr16s::dividend#0
  [112] (word~) divr16s::dividendu#7 ← (word)(signed word~) divr16s::$5
  to:divr16s::@2
divr16u: scope:[divr16u]  from div16u divr16s::@4
  [113] (word) divr16u::divisor#6 ← phi( div16u/(word) divr16u::divisor#0 divr16s::@4/(word) divr16u::divisor#1 )
  [113] (word) divr16u::dividend#5 ← phi( div16u/(word) divr16u::dividend#1 divr16s::@4/(word) divr16u::dividend#2 )
  [113] (word) divr16u::rem#10 ← phi( div16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16s::@4/(word) divr16u::rem#4 )
  to:divr16u::@1
divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
  [114] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 )
  [114] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 )
  [114] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 )
  [114] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 )
  [115] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3
  [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128
  [118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2
  to:divr16u::@4
divr16u::@4: scope:[divr16u]  from divr16u::@1
  [119] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1
  to:divr16u::@2
divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
  [120] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
  [121] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [122] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [123] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3
  to:divr16u::@5
divr16u::@5: scope:[divr16u]  from divr16u::@2
  [124] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
  [125] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6
  to:divr16u::@3
divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
  [126] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
  [126] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 )
  [127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
  [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1
  to:divr16u::@6
divr16u::@6: scope:[divr16u]  from divr16u::@3
  [129] (word) rem16u#1 ← (word) divr16u::rem#11
  to:divr16u::@return
divr16u::@return: scope:[divr16u]  from divr16u::@6
  [130] return 
  to:@return
test_8s: scope:[test_8s]  from main::@3
  [131] phi()
  to:test_8s::@1
test_8s::@1: scope:[test_8s]  from test_8s test_8s::@11
  [132] (byte) test_8s::i#10 ← phi( test_8s/(byte/signed byte/word/signed word/dword/signed dword) 0 test_8s::@11/(byte) test_8s::i#1 )
  [133] (signed byte) test_8s::dividend#0 ← *((const signed byte[]) test_8s::dividends#0 + (byte) test_8s::i#10)
  [134] (signed byte) test_8s::divisor#0 ← *((const signed byte[]) test_8s::divisors#0 + (byte) test_8s::i#10)
  [135] (signed byte) div8s::dividend#0 ← (signed byte) test_8s::dividend#0
  [136] (signed byte) div8s::divisor#0 ← (signed byte) test_8s::divisor#0
  [137] call div8s 
  [138] (signed byte) div8s::return#3 ← (signed byte) div8s::return#2
  to:test_8s::@3
test_8s::@3: scope:[test_8s]  from test_8s::@1
  [139] (signed byte) test_8s::res#0 ← (signed byte) div8s::return#3
  [140] (signed byte) print_sbyte::b#1 ← (signed byte) test_8s::dividend#0
  [141] (byte*~) print_char_cursor#184 ← (byte*) print_line_cursor#1
  [142] call print_sbyte 
  to:test_8s::@4
test_8s::@4: scope:[test_8s]  from test_8s::@3
  [143] phi()
  [144] call print_str 
  to:test_8s::@5
test_8s::@5: scope:[test_8s]  from test_8s::@4
  [145] (signed byte) print_sbyte::b#2 ← (signed byte) test_8s::divisor#0
  [146] call print_sbyte 
  to:test_8s::@6
test_8s::@6: scope:[test_8s]  from test_8s::@5
  [147] phi()
  [148] call print_str 
  to:test_8s::@7
test_8s::@7: scope:[test_8s]  from test_8s::@6
  [149] (signed byte) print_sbyte::b#3 ← (signed byte) test_8s::res#0
  [150] call print_sbyte 
  to:test_8s::@8
test_8s::@8: scope:[test_8s]  from test_8s::@7
  [151] phi()
  [152] call print_str 
  to:test_8s::@9
test_8s::@9: scope:[test_8s]  from test_8s::@8
  [153] (signed byte) print_sbyte::b#4 ← (signed byte) rem8s#3
  [154] call print_sbyte 
  to:test_8s::@10
test_8s::@10: scope:[test_8s]  from test_8s::@9
  [155] phi()
  [156] call print_ln 
  to:test_8s::@11
test_8s::@11: scope:[test_8s]  from test_8s::@10
  [157] (byte) test_8s::i#1 ← ++ (byte) test_8s::i#10
  [158] if((byte) test_8s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto test_8s::@1
  to:test_8s::@return
test_8s::@return: scope:[test_8s]  from test_8s::@11
  [159] return 
  to:@return
print_sbyte: scope:[print_sbyte]  from test_8s::@3 test_8s::@5 test_8s::@7 test_8s::@9
  [160] (byte*) print_char_cursor#132 ← phi( test_8s::@3/(byte*~) print_char_cursor#184 test_8s::@5/(byte*) print_char_cursor#128 test_8s::@7/(byte*) print_char_cursor#128 test_8s::@9/(byte*) print_char_cursor#128 )
  [160] (signed byte) print_sbyte::b#10 ← phi( test_8s::@3/(signed byte) print_sbyte::b#1 test_8s::@5/(signed byte) print_sbyte::b#2 test_8s::@7/(signed byte) print_sbyte::b#3 test_8s::@9/(signed byte) print_sbyte::b#4 )
  [161] if((signed byte) print_sbyte::b#10<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1
  to:print_sbyte::@3
print_sbyte::@3: scope:[print_sbyte]  from print_sbyte
  [162] phi()
  [163] call print_char 
  to:print_sbyte::@2
print_sbyte::@2: scope:[print_sbyte]  from print_sbyte::@3 print_sbyte::@5
  [164] (signed byte) print_sbyte::b#7 ← phi( print_sbyte::@5/(signed byte) print_sbyte::b#0 print_sbyte::@3/(signed byte) print_sbyte::b#10 )
  [165] (byte~) print_byte::b#9 ← (byte)(signed byte) print_sbyte::b#7
  [166] call print_byte 
  to:print_sbyte::@return
print_sbyte::@return: scope:[print_sbyte]  from print_sbyte::@2
  [167] return 
  to:@return
print_sbyte::@1: scope:[print_sbyte]  from print_sbyte
  [168] phi()
  [169] call print_char 
  to:print_sbyte::@5
print_sbyte::@5: scope:[print_sbyte]  from print_sbyte::@1
  [170] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#10
  to:print_sbyte::@2
div8s: scope:[div8s]  from test_8s::@1
  [171] if((signed byte) div8s::dividend#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@1
  to:div8s::@16
div8s::@16: scope:[div8s]  from div8s
  [172] (byte~) div8s::dividendu#8 ← (byte)(signed byte) div8s::dividend#0
  to:div8s::@2
div8s::@2: scope:[div8s]  from div8s::@1 div8s::@16
  [173] (byte) div8s::dividendu#3 ← phi( div8s::@1/(byte~) div8s::dividendu#7 div8s::@16/(byte~) div8s::dividendu#8 )
  [173] (byte) div8s::neg#3 ← phi( div8s::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 div8s::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 )
  [174] if((signed byte) div8s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@3
  to:div8s::@17
div8s::@17: scope:[div8s]  from div8s::@2
  [175] (byte~) div8s::divisoru#5 ← (byte)(signed byte) div8s::divisor#0
  to:div8s::@4
div8s::@4: scope:[div8s]  from div8s::@17 div8s::@3
  [176] (byte) div8s::neg#4 ← phi( div8s::@3/(byte) div8s::neg#2 div8s::@17/(byte) div8s::neg#3 )
  [176] (byte) div8s::divisoru#3 ← phi( div8s::@3/(byte~) div8s::divisoru#4 div8s::@17/(byte~) div8s::divisoru#5 )
  [177] (byte) div8u::dividend#0 ← (byte) div8s::dividendu#3
  [178] (byte) div8u::divisor#0 ← (byte) div8s::divisoru#3
  [179] call div8u 
  [180] (byte) div8u::return#2 ← (byte) div8u::return#0
  to:div8s::@15
div8s::@15: scope:[div8s]  from div8s::@4
  [181] (byte) div8s::resultu#0 ← (byte) div8u::return#2
  [182] if((byte) div8s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@18
  to:div8s::@11
div8s::@11: scope:[div8s]  from div8s::@15
  [183] (signed byte) rem8s#2 ← - (signed byte)(byte) rem8u#17
  [184] (signed byte) div8s::return#1 ← - (signed byte)(byte) div8s::resultu#0
  to:div8s::@return
div8s::@return: scope:[div8s]  from div8s::@11 div8s::@18
  [185] (signed byte) rem8s#3 ← phi( div8s::@11/(signed byte) rem8s#2 div8s::@18/(signed byte~) rem8s#33 )
  [185] (signed byte) div8s::return#2 ← phi( div8s::@11/(signed byte) div8s::return#1 div8s::@18/(signed byte~) div8s::return#7 )
  [186] return 
  to:@return
div8s::@18: scope:[div8s]  from div8s::@15
  [187] (signed byte~) div8s::return#7 ← (signed byte)(byte) div8s::resultu#0
  [188] (signed byte~) rem8s#33 ← (signed byte)(byte) rem8u#17
  to:div8s::@return
div8s::@3: scope:[div8s]  from div8s::@2
  [189] (signed byte~) div8s::$6 ← - (signed byte) div8s::divisor#0
  [190] (byte) div8s::neg#2 ← (byte) div8s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1
  [191] (byte~) div8s::divisoru#4 ← (byte)(signed byte~) div8s::$6
  to:div8s::@4
div8s::@1: scope:[div8s]  from div8s
  [192] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0
  [193] (byte~) div8s::dividendu#7 ← (byte)(signed byte~) div8s::$2
  to:div8s::@2
div8u: scope:[div8u]  from div8s::@4 test_8u::@1
  [194] (byte) div8u::divisor#2 ← phi( div8s::@4/(byte) div8u::divisor#0 test_8u::@1/(byte) div8u::divisor#1 )
  [194] (byte) div8u::dividend#2 ← phi( div8s::@4/(byte) div8u::dividend#0 test_8u::@1/(byte) div8u::dividend#1 )
  [195] (byte) divr8u::dividend#0 ← (byte) div8u::dividend#2
  [196] (byte) divr8u::divisor#0 ← (byte) div8u::divisor#2
  [197] call divr8u 
  [198] (byte) divr8u::return#0 ← (byte) divr8u::return#1
  to:div8u::@2
div8u::@2: scope:[div8u]  from div8u
  [199] (byte) div8u::return#0 ← (byte) divr8u::return#0
  to:div8u::@return
div8u::@return: scope:[div8u]  from div8u::@2
  [200] return 
  to:@return
divr8u: scope:[divr8u]  from div8u
  [201] phi()
  to:divr8u::@1
divr8u::@1: scope:[divr8u]  from divr8u divr8u::@3
  [202] (byte) divr8u::i#2 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::i#1 )
  [202] (byte) divr8u::quotient#3 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::return#1 )
  [202] (byte) divr8u::dividend#2 ← phi( divr8u/(byte) divr8u::dividend#0 divr8u::@3/(byte) divr8u::dividend#1 )
  [202] (byte) divr8u::rem#4 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::rem#10 )
  [203] (byte) divr8u::rem#1 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128
  [205] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2
  to:divr8u::@4
divr8u::@4: scope:[divr8u]  from divr8u::@1
  [206] (byte) divr8u::rem#2 ← (byte) divr8u::rem#1 | (byte/signed byte/word/signed word/dword/signed dword) 1
  to:divr8u::@2
divr8u::@2: scope:[divr8u]  from divr8u::@1 divr8u::@4
  [207] (byte) divr8u::rem#5 ← phi( divr8u::@1/(byte) divr8u::rem#1 divr8u::@4/(byte) divr8u::rem#2 )
  [208] (byte) divr8u::dividend#1 ← (byte) divr8u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [209] (byte) divr8u::quotient#1 ← (byte) divr8u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [210] if((byte) divr8u::rem#5<(byte) divr8u::divisor#0) goto divr8u::@3
  to:divr8u::@5
divr8u::@5: scope:[divr8u]  from divr8u::@2
  [211] (byte) divr8u::quotient#2 ← ++ (byte) divr8u::quotient#1
  [212] (byte) divr8u::rem#3 ← (byte) divr8u::rem#5 - (byte) divr8u::divisor#0
  to:divr8u::@3
divr8u::@3: scope:[divr8u]  from divr8u::@2 divr8u::@5
  [213] (byte) divr8u::return#1 ← phi( divr8u::@2/(byte) divr8u::quotient#1 divr8u::@5/(byte) divr8u::quotient#2 )
  [213] (byte) divr8u::rem#10 ← phi( divr8u::@2/(byte) divr8u::rem#5 divr8u::@5/(byte) divr8u::rem#3 )
  [214] (byte) divr8u::i#1 ← ++ (byte) divr8u::i#2
  [215] if((byte) divr8u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto divr8u::@1
  to:divr8u::@6
divr8u::@6: scope:[divr8u]  from divr8u::@3
  [216] (byte) rem8u#17 ← (byte) divr8u::rem#10
  to:divr8u::@return
divr8u::@return: scope:[divr8u]  from divr8u::@6
  [217] return 
  to:@return
test_16u: scope:[test_16u]  from main::@2
  [218] phi()
  to:test_16u::@1
test_16u::@1: scope:[test_16u]  from test_16u test_16u::@11
  [219] (byte) test_16u::i#10 ← phi( test_16u/(byte/signed byte/word/signed word/dword/signed dword) 0 test_16u::@11/(byte) test_16u::i#1 )
  [220] (word) test_16u::dividend#0 ← *((const word[]) test_16u::dividends#0 + (byte) test_16u::i#10)
  [221] (word) test_16u::divisor#0 ← *((const word[]) test_16u::divisors#0 + (byte) test_16u::i#10)
  [222] (word) div16u::dividend#0 ← (word) test_16u::dividend#0
  [223] (word) div16u::divisor#0 ← (word) test_16u::divisor#0
  [224] call div16u 
  [225] (word) div16u::return#2 ← (word) div16u::return#0
  to:test_16u::@3
test_16u::@3: scope:[test_16u]  from test_16u::@1
  [226] (word) test_16u::res#0 ← (word) div16u::return#2
  [227] (word) print_word::w#1 ← (word) test_16u::dividend#0
  [228] (byte*~) print_char_cursor#166 ← (byte*) print_line_cursor#1
  [229] call print_word 
  to:test_16u::@4
test_16u::@4: scope:[test_16u]  from test_16u::@3
  [230] phi()
  [231] call print_str 
  to:test_16u::@5
test_16u::@5: scope:[test_16u]  from test_16u::@4
  [232] (word) print_word::w#2 ← (word) test_16u::divisor#0
  [233] call print_word 
  to:test_16u::@6
test_16u::@6: scope:[test_16u]  from test_16u::@5
  [234] phi()
  [235] call print_str 
  to:test_16u::@7
test_16u::@7: scope:[test_16u]  from test_16u::@6
  [236] (word) print_word::w#3 ← (word) test_16u::res#0
  [237] call print_word 
  to:test_16u::@8
test_16u::@8: scope:[test_16u]  from test_16u::@7
  [238] phi()
  [239] call print_str 
  to:test_16u::@9
test_16u::@9: scope:[test_16u]  from test_16u::@8
  [240] (word) print_word::w#4 ← (word) rem16u#1
  [241] call print_word 
  to:test_16u::@10
test_16u::@10: scope:[test_16u]  from test_16u::@9
  [242] phi()
  [243] call print_ln 
  to:test_16u::@11
test_16u::@11: scope:[test_16u]  from test_16u::@10
  [244] (byte) test_16u::i#1 ← (byte) test_16u::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2
  [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1
  to:test_16u::@return
test_16u::@return: scope:[test_16u]  from test_16u::@11
  [246] return 
  to:@return
div16u: scope:[div16u]  from test_16u::@1
  [247] (word) divr16u::dividend#1 ← (word) div16u::dividend#0
  [248] (word) divr16u::divisor#0 ← (word) div16u::divisor#0
  [249] call divr16u 
  [250] (word) divr16u::return#2 ← (word) divr16u::return#0
  to:div16u::@2
div16u::@2: scope:[div16u]  from div16u
  [251] (word) div16u::return#0 ← (word) divr16u::return#2
  to:div16u::@return
div16u::@return: scope:[div16u]  from div16u::@2
  [252] return 
  to:@return
test_8u: scope:[test_8u]  from main::@1
  [253] phi()
  to:test_8u::@1
test_8u::@1: scope:[test_8u]  from test_8u test_8u::@12
  [254] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*) print_line_cursor#1 )
  [254] (byte*) print_char_cursor#138 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#188 )
  [254] (byte) test_8u::i#10 ← phi( test_8u/(byte/signed byte/word/signed word/dword/signed dword) 0 test_8u::@12/(byte) test_8u::i#1 )
  [255] (byte) test_8u::dividend#0 ← *((const byte[]) test_8u::dividends#0 + (byte) test_8u::i#10)
  [256] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10)
  [257] (byte) div8u::dividend#1 ← (byte) test_8u::dividend#0
  [258] (byte) div8u::divisor#1 ← (byte) test_8u::divisor#0
  [259] call div8u 
  [260] (byte) div8u::return#3 ← (byte) div8u::return#0
  to:test_8u::@3
test_8u::@3: scope:[test_8u]  from test_8u::@1
  [261] (byte) test_8u::res#0 ← (byte) div8u::return#3
  [262] (byte) print_byte::b#3 ← (byte) test_8u::dividend#0
  [263] call print_byte 
  to:test_8u::@4
test_8u::@4: scope:[test_8u]  from test_8u::@3
  [264] phi()
  [265] call print_str 
  to:test_8u::@5
test_8u::@5: scope:[test_8u]  from test_8u::@4
  [266] (byte) print_byte::b#4 ← (byte) test_8u::divisor#0
  [267] call print_byte 
  to:test_8u::@6
test_8u::@6: scope:[test_8u]  from test_8u::@5
  [268] phi()
  [269] call print_str 
  to:test_8u::@7
test_8u::@7: scope:[test_8u]  from test_8u::@6
  [270] (byte) print_byte::b#5 ← (byte) test_8u::res#0
  [271] call print_byte 
  to:test_8u::@8
test_8u::@8: scope:[test_8u]  from test_8u::@7
  [272] phi()
  [273] call print_str 
  to:test_8u::@9
test_8u::@9: scope:[test_8u]  from test_8u::@8
  [274] (byte) print_byte::b#6 ← (byte) rem8u#17
  [275] call print_byte 
  to:test_8u::@10
test_8u::@10: scope:[test_8u]  from test_8u::@9
  [276] phi()
  [277] call print_ln 
  to:test_8u::@11
test_8u::@11: scope:[test_8u]  from test_8u::@10
  [278] (byte) test_8u::i#1 ← ++ (byte) test_8u::i#10
  [279] if((byte) test_8u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto test_8u::@12
  to:test_8u::@return
test_8u::@return: scope:[test_8u]  from test_8u::@11
  [280] return 
  to:@return
test_8u::@12: scope:[test_8u]  from test_8u::@11
  [281] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1
  to:test_8u::@1
print_cls: scope:[print_cls]  from main
  [282] phi()
  to:print_cls::@1
print_cls::@1: scope:[print_cls]  from print_cls print_cls::@1
  [283] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 )
  [284] *((byte*) print_cls::sc#2) ← (byte) ' '
  [285] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2
  [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls::@1
  [287] return 
  to:@return
