program: globals: "to_find" { int32[2] } extern "print_sint": int4s -> void extern "newline": void extern "space": void "search"(ptr %0, int4s %1, int4s %2) locals: int4s %3, int4s %4, int4s %5, int1s %7, int1s %8, int4s %9, int4s %10, int4s %11, ptr %12, int4s %13, int4s %14, int4s %15, int4s %16, int4s %17, ptr %18, int4s %19, int4s %20, int4s %21, int4s %22, ptr %23, int4s %24, int4s %25, int4s %26, int4s %27, int4s %28, int4s %29, int4s %30, int1s %31 result: int4s %6 stacksize: struct {} entry: search46 exit: search0 search9: emit _cost0 --> search8 search8: imm %9, imm_int 1 --> search7 search7: add %5, %4, %9 --> search5 search6: emit _cost1 --> search5 search5: --> search41 search46: emit _cost8 --> search45 search45: imm %31, imm_int 0 --> search44 search44: int1sto4 %5, %31 --> search43 search43: imm %30, imm_int 1 --> search42 search42: sub %3, %1, %30 --> search5 search41: ge %29, %3, %5 --> search40 search40: notbool %28, %29 --> search39 search4: emit _cost7 --> search3 search39: %28? --> search4, search38 search38: emit _cost6 --> search37 search37: add %26, %3, %5 --> search36 search36: imm %27, imm_int 2 --> search35 search35: div %4, %26, %27 --> search34 search34: imm %25, imm_sizeof (int32) --> search33 search33: mul %24, %4, %25 --> search32 search32: addp %23, %0, %24 --> search31 search31: load int32, %23, %22 --> search30 search30: eq %21, %22, %2 --> search29 search3: imm %8, imm_int 1 --> search2 search29: %21? --> search28, search26 search28: emit _cost4 --> search27 search27: id %6, %4 --> search0 search26: emit _cost5 --> search25 search25: imm %20, imm_sizeof (int32) --> search24 search24: mul %19, %4, %20 --> search23 search23: addp %18, %0, %19 --> search22 search22: load int32, %18, %17 --> search21 search21: gt %16, %17, %2 --> search20 search20: %16? --> search19, search16 search2: negint %7, %8 --> search1 search19: emit _cost2 --> search18 search18: imm %15, imm_int 1 --> search17 search17: sub %3, %4, %15 --> search15 search16: emit _cost3 --> search15 search15: imm %14, imm_sizeof (int32) --> search14 search14: mul %13, %4, %14 --> search13 search13: addp %12, %0, %13 --> search12 search12: load int32, %12, %11 --> search11 search11: lt %10, %11, %2 --> search10 search10: %10? --> search9, search6 search1: int1sto4 %6, %7 --> search0 search0: return %6 "main"() locals: int4s %0, int4s %1, int4s %2, int4s %3, int1s %5, int1u %6, int4s %7, int1u %8, int1u %9, ptr %10, int4s %11, int4s %12, ptr %13, ptr %14, int4s %15, int4s %16, int1s %17, ptr %18, offset %19, int4s %20, int4s %21, int4s %22, int1s %23, ptr %24, int4s %25, int1s %26, ptr %27, int1s %28, int1s %29, int1s %30, ptr %31, offset %32, ptr %33, int4s %34, int1s %35, ptr %36, int1s %37, int1s %38, int1s %39, ptr %40, offset %41, ptr %42, int4s %43, int1s %44, ptr %45, int1s %46, int1s %47, int1s %48, ptr %49, offset %50, ptr %51, int4s %52, int1s %53, int1s %54, ptr %55, int1s %56, int1s %57, int1s %58, ptr %59, offset %60, ptr %61, int4s %62, int1s %63, int1s %64, ptr %65, int1s %66, int1s %67, int1s %68, ptr %69, offset %70, ptr %71, int4u %72, ptr %73, offset %74, offset %75, offset %76, ptr %77, int4u %78, ptr %79, offset %80, offset %81, offset %82 result: int4s %4 stacksize: struct {int32[5]} entry: main95 exit: main0 main95: imm %79, imm_addr "to_find" --> main94 main94: imm %81, imm_int 0 --> main93 main93: imm %82, imm_offset { int32[2], 0 } --> main92 main92: add %80, %81, %82 --> main91 main91: addp %77, %79, %80 --> main90 main90: imm %78, imm_int 57 --> main89 main9: call "print_sint", [%2], %9: int4s -> void --> main8 main89: store int32, %77, %78 --> main88 main88: imm %73, imm_addr "to_find" --> main87 main87: imm %75, imm_int 0 --> main86 main86: imm %76, imm_offset { int32[2], 1 } --> main85 main85: add %74, %75, %76 --> main84 main84: addp %71, %73, %74 --> main83 main83: imm %72, imm_int -1 --> main82 main82: store int32, %71, %72 --> main81 main81: emit _cost11 --> main80 main80: imm %69, imm_addr STACK --> main79 main8: call "space", [], %8: void --> main7 main79: imm %70, imm_offset { struct {int32[5]}, 0 } --> main78 main78: addp %65, %69, %70 --> main77 main77: imm %67, imm_int 0 --> main76 main76: imm %68, imm_sizeof (int32) --> main75 main75: mul %66, %67, %68 --> main74 main74: addp %61, %65, %66 --> main73 main73: imm %64, imm_int 30 --> main72 main72: negint %63, %64 --> main71 main71: int1sto4 %62, %63 --> main70 main70: store int32, %61, %62 --> main69 main7: imm %7, imm_int 1 --> main6 main69: imm %59, imm_addr STACK --> main68 main68: imm %60, imm_offset { struct {int32[5]}, 0 } --> main67 main67: addp %55, %59, %60 --> main66 main66: imm %57, imm_int 1 --> main65 main65: imm %58, imm_sizeof (int32) --> main64 main64: mul %56, %57, %58 --> main63 main63: addp %51, %55, %56 --> main62 main62: imm %54, imm_int 18 --> main61 main61: negint %53, %54 --> main60 main60: int1sto4 %52, %53 --> main59 main6: add %0, %0, %7 --> main5 main59: store int32, %51, %52 --> main58 main58: imm %49, imm_addr STACK --> main57 main57: imm %50, imm_offset { struct {int32[5]}, 0 } --> main56 main56: addp %45, %49, %50 --> main55 main55: imm %47, imm_int 2 --> main54 main54: imm %48, imm_sizeof (int32) --> main53 main53: mul %46, %47, %48 --> main52 main52: addp %42, %45, %46 --> main51 main51: imm %44, imm_int 23 --> main50 main50: int1sto4 %43, %44 --> main49 main5: --> main26 main49: store int32, %42, %43 --> main48 main48: imm %40, imm_addr STACK --> main47 main47: imm %41, imm_offset { struct {int32[5]}, 0 } --> main46 main46: addp %36, %40, %41 --> main45 main45: imm %38, imm_int 3 --> main44 main44: imm %39, imm_sizeof (int32) --> main43 main43: mul %37, %38, %39 --> main42 main42: addp %33, %36, %37 --> main41 main41: imm %35, imm_int 57 --> main40 main40: int1sto4 %34, %35 --> main39 main4: emit _cost10 --> main3 main39: store int32, %33, %34 --> main38 main38: imm %31, imm_addr STACK --> main37 main37: imm %32, imm_offset { struct {int32[5]}, 0 } --> main36 main36: addp %27, %31, %32 --> main35 main35: imm %29, imm_int 4 --> main34 main34: imm %30, imm_sizeof (int32) --> main33 main33: mul %28, %29, %30 --> main32 main32: addp %24, %27, %28 --> main31 main31: imm %26, imm_int 120 --> main30 main30: int1sto4 %25, %26 --> main29 main3: call "newline", [], %6: void --> main2 main29: store int32, %24, %25 --> main28 main28: imm %23, imm_int 0 --> main27 main27: int1sto4 %0, %23 --> main5 main26: imm %22, imm_int 2 --> main25 main25: lt %21, %0, %22 --> main24 main24: notbool %20, %21 --> main23 main23: %20? --> main4, main22 main22: emit _cost9 --> main21 main21: imm %18, imm_addr STACK --> main20 main20: imm %19, imm_offset { struct {int32[5]}, 0 } --> main19 main2: imm %5, imm_int 0 --> main1 main19: addp %10, %18, %19 --> main18 main18: imm %17, imm_int 5 --> main17 main17: int1sto4 %11, %17 --> main16 main16: imm %14, imm_addr "to_find" --> main15 main15: imm %16, imm_sizeof (int32) --> main14 main14: mul %15, %0, %16 --> main13 main13: addp %13, %14, %15 --> main12 main12: load int32, %13, %12 --> main11 main11: call "search", [%10, %11, %12], %3: ptr -> int4s -> int4s -> int4s --> main10 main10: id %2, %3 --> main9 main1: int1sto4 %4, %5 --> main0 main0: return %4