; ModuleID = 'urcl'
source_filename = "urcl"

define i64 @urcl_main() {
entry:
  %r1 = alloca i64, align 8
  store i64 0, ptr %r1, align 4
  %r2 = alloca i64, align 8
  store i64 0, ptr %r2, align 4
  %r3 = alloca i64, align 8
  store i64 0, ptr %r3, align 4
  %r4 = alloca i64, align 8
  store i64 0, ptr %r4, align 4
  %r5 = alloca i64, align 8
  store i64 0, ptr %r5, align 4
  %r6 = alloca i64, align 8
  store i64 0, ptr %r6, align 4
  %r7 = alloca i64, align 8
  store i64 0, ptr %r7, align 4
  %r8 = alloca i64, align 8
  store i64 0, ptr %r8, align 4
  %ram = alloca [24 x i64], align 8
  store [24 x i64] zeroinitializer, ptr %ram, align 4
  store [0 x i64] zeroinitializer, ptr %ram, align 4
  %sp = alloca i64, align 8
  store i64 24, ptr %sp, align 4
  %inst_cnt = alloca i64, align 8
  store i64 0, ptr %inst_cnt, align 4
  %big_switch_to = alloca i64, align 8
  br label %inst_0

inst_0:                                           ; preds = %big_switch_table, %entry
  %inst_cnt_v = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update = add i64 %inst_cnt_v, 1
  store i64 %inst_cnt_v_update, ptr %inst_cnt, align 4
  store i64 1, ptr %r1, align 4
  br label %inst_1

inst_1:                                           ; preds = %big_switch_table, %inst_0
  %inst_cnt_v1 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update2 = add i64 %inst_cnt_v1, 1
  store i64 %inst_cnt_v_update2, ptr %inst_cnt, align 4
  store i64 0, ptr %r2, align 4
  br label %inst_2

inst_2:                                           ; preds = %big_switch_table, %inst_6, %inst_1
  %inst_cnt_v3 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update4 = add i64 %inst_cnt_v3, 1
  store i64 %inst_cnt_v_update4, ptr %inst_cnt, align 4
  %reg_load = load i64, ptr %r1, align 4
  %reg_load5 = load i64, ptr %r2, align 4
  %add = add i64 %reg_load, %reg_load5
  store i64 %add, ptr %r1, align 4
  br label %inst_3

inst_3:                                           ; preds = %big_switch_table, %inst_2
  %inst_cnt_v6 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update7 = add i64 %inst_cnt_v6, 1
  store i64 %inst_cnt_v_update7, ptr %inst_cnt, align 4
  %reg_load8 = load i64, ptr %r1, align 4
  %reg_load9 = load i64, ptr %r2, align 4
  %sub = sub i64 %reg_load8, %reg_load9
  store i64 %sub, ptr %r2, align 4
  br label %inst_4

inst_4:                                           ; preds = %big_switch_table, %inst_3
  %inst_cnt_v10 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update11 = add i64 %inst_cnt_v10, 1
  store i64 %inst_cnt_v_update11, ptr %inst_cnt, align 4
  %reg_load12 = load i64, ptr %r2, align 4
  call void @urcl_out(i64 25, i64 %reg_load12)
  br label %inst_5

inst_5:                                           ; preds = %big_switch_table, %inst_4
  %inst_cnt_v13 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update14 = add i64 %inst_cnt_v13, 1
  store i64 %inst_cnt_v_update14, ptr %inst_cnt, align 4
  call void @urcl_out(i64 1, i64 10)
  br label %inst_6

inst_6:                                           ; preds = %big_switch_table, %inst_5
  %inst_cnt_v15 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update16 = add i64 %inst_cnt_v15, 1
  store i64 %inst_cnt_v_update16, ptr %inst_cnt, align 4
  %reg_load17 = load i64, ptr %r2, align 4
  %urcl_bge_cmp = icmp uge i64 1836311902, %reg_load17
  br i1 %urcl_bge_cmp, label %inst_2, label %inst_7

inst_7:                                           ; preds = %big_switch_table, %inst_6
  %inst_cnt_v18 = load i64, ptr %inst_cnt, align 4
  %inst_cnt_v_update19 = add i64 %inst_cnt_v18, 1
  store i64 %inst_cnt_v_update19, ptr %inst_cnt, align 4
  %inst_cnt_v20 = load i64, ptr %inst_cnt, align 4
  ret i64 %inst_cnt_v20

inst_8:                                           ; preds = %big_switch_table, %big_switch_table
  %inst_cnt_v21 = load i64, ptr %inst_cnt, align 4
  ret i64 %inst_cnt_v21

big_switch_table:                                 ; No predecessors!
  %get_addr = load i64, ptr %big_switch_to, align 4
  switch i64 %get_addr, label %inst_8 [
    i64 0, label %inst_0
    i64 1, label %inst_1
    i64 2, label %inst_2
    i64 3, label %inst_3
    i64 4, label %inst_4
    i64 5, label %inst_5
    i64 6, label %inst_6
    i64 7, label %inst_7
    i64 8, label %inst_8
  ]
}

declare void @urcl_out(i64, i64)

declare i64 @urcl_in(i64)
