; ModuleID = 'LFortran'
source_filename = "LFortran"

@0 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@1 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@2 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@3 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@4 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@5 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@6 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@7 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@8 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@9 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@10 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@11 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@12 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@13 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@14 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@15 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@16 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@17 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@18 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@19 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@20 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@21 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@22 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@23 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@24 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@25 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@26 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@27 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@28 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@29 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@30 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@31 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@32 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@33 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@34 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@35 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@36 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@37 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@38 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@39 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@40 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@41 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@42 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@43 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@44 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@45 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@46 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@47 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@48 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@49 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@50 = private unnamed_addr constant [11 x i8] c"ERROR STOP\00", align 1
@51 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@52 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1
@53 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@54 = private unnamed_addr constant [5 x i8] c"%s%s\00", align 1

define i32 @main(i32 %0, i8** %1) {
.entry:
  %i = alloca i32, align 4
  %j = alloca i32, align 4
  call void @_lpython_call_initial_functions(i32 %0, i8** %1)
  %i1 = alloca i32, align 4
  %j2 = alloca i32, align 4
  store i32 0, i32* %j2, align 4
  store i32 0, i32* %i1, align 4
  br label %loop.head

loop.head:                                        ; preds = %loop.body, %.entry
  %2 = load i32, i32* %i1, align 4
  %3 = add i32 %2, 1
  %4 = icmp sle i32 %3, 10
  br i1 %4, label %loop.body, label %loop.end

loop.body:                                        ; preds = %loop.head
  %5 = load i32, i32* %i1, align 4
  %6 = add i32 %5, 1
  store i32 %6, i32* %i1, align 4
  %7 = load i32, i32* %j2, align 4
  %8 = load i32, i32* %i1, align 4
  %9 = add i32 %7, %8
  store i32 %9, i32* %j2, align 4
  br label %loop.head

loop.end:                                         ; preds = %loop.head
  %10 = load i32, i32* %j2, align 4
  %11 = icmp ne i32 %10, 55
  br i1 %11, label %then, label %else

then:                                             ; preds = %loop.end
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @2, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @0, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @1, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont

else:                                             ; preds = %loop.end
  br label %ifcont

ifcont:                                           ; preds = %else, %then
  %12 = load i32, i32* %j2, align 4
  %13 = sext i32 %12 to i64
  %14 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %13)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @4, i32 0, i32 0), i8* %14, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @3, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 11, i32* %i1, align 4
  br label %loop.head3

loop.head3:                                       ; preds = %loop.body4, %ifcont
  %15 = load i32, i32* %i1, align 4
  %16 = add i32 %15, -1
  %17 = icmp sge i32 %16, 1
  br i1 %17, label %loop.body4, label %loop.end5

loop.body4:                                       ; preds = %loop.head3
  %18 = load i32, i32* %i1, align 4
  %19 = add i32 %18, -1
  store i32 %19, i32* %i1, align 4
  %20 = load i32, i32* %j2, align 4
  %21 = load i32, i32* %i1, align 4
  %22 = add i32 %20, %21
  store i32 %22, i32* %j2, align 4
  br label %loop.head3

loop.end5:                                        ; preds = %loop.head3
  %23 = load i32, i32* %j2, align 4
  %24 = icmp ne i32 %23, 55
  br i1 %24, label %then6, label %else7

then6:                                            ; preds = %loop.end5
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @7, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @5, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @6, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont8

else7:                                            ; preds = %loop.end5
  br label %ifcont8

ifcont8:                                          ; preds = %else7, %then6
  %25 = load i32, i32* %j2, align 4
  %26 = sext i32 %25 to i64
  %27 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %26)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @9, i32 0, i32 0), i8* %27, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @8, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 -1, i32* %i1, align 4
  br label %loop.head9

loop.head9:                                       ; preds = %loop.body10, %ifcont8
  %28 = load i32, i32* %i1, align 4
  %29 = add i32 %28, 2
  %30 = icmp sle i32 %29, 9
  br i1 %30, label %loop.body10, label %loop.end11

loop.body10:                                      ; preds = %loop.head9
  %31 = load i32, i32* %i1, align 4
  %32 = add i32 %31, 2
  store i32 %32, i32* %i1, align 4
  %33 = load i32, i32* %j2, align 4
  %34 = load i32, i32* %i1, align 4
  %35 = add i32 %33, %34
  store i32 %35, i32* %j2, align 4
  br label %loop.head9

loop.end11:                                       ; preds = %loop.head9
  %36 = load i32, i32* %j2, align 4
  %37 = icmp ne i32 %36, 25
  br i1 %37, label %then12, label %else13

then12:                                           ; preds = %loop.end11
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @12, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @11, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont14

else13:                                           ; preds = %loop.end11
  br label %ifcont14

ifcont14:                                         ; preds = %else13, %then12
  %38 = load i32, i32* %j2, align 4
  %39 = sext i32 %38 to i64
  %40 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %39)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @14, i32 0, i32 0), i8* %40, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @13, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 11, i32* %i1, align 4
  br label %loop.head15

loop.head15:                                      ; preds = %loop.body16, %ifcont14
  %41 = load i32, i32* %i1, align 4
  %42 = add i32 %41, -2
  %43 = icmp sge i32 %42, 1
  br i1 %43, label %loop.body16, label %loop.end17

loop.body16:                                      ; preds = %loop.head15
  %44 = load i32, i32* %i1, align 4
  %45 = add i32 %44, -2
  store i32 %45, i32* %i1, align 4
  %46 = load i32, i32* %j2, align 4
  %47 = load i32, i32* %i1, align 4
  %48 = add i32 %46, %47
  store i32 %48, i32* %j2, align 4
  br label %loop.head15

loop.end17:                                       ; preds = %loop.head15
  %49 = load i32, i32* %j2, align 4
  %50 = icmp ne i32 %49, 25
  br i1 %50, label %then18, label %else19

then18:                                           ; preds = %loop.end17
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @17, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @15, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @16, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont20

else19:                                           ; preds = %loop.end17
  br label %ifcont20

ifcont20:                                         ; preds = %else19, %then18
  %51 = load i32, i32* %j2, align 4
  %52 = sext i32 %51 to i64
  %53 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %52)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @19, i32 0, i32 0), i8* %53, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @18, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 -1, i32* %i1, align 4
  br label %loop.head21

loop.head21:                                      ; preds = %loop.body22, %ifcont20
  %54 = load i32, i32* %i1, align 4
  %55 = add i32 %54, 2
  %56 = icmp sle i32 %55, 10
  br i1 %56, label %loop.body22, label %loop.end23

loop.body22:                                      ; preds = %loop.head21
  %57 = load i32, i32* %i1, align 4
  %58 = add i32 %57, 2
  store i32 %58, i32* %i1, align 4
  %59 = load i32, i32* %j2, align 4
  %60 = load i32, i32* %i1, align 4
  %61 = add i32 %59, %60
  store i32 %61, i32* %j2, align 4
  br label %loop.head21

loop.end23:                                       ; preds = %loop.head21
  %62 = load i32, i32* %j2, align 4
  %63 = icmp ne i32 %62, 25
  br i1 %63, label %then24, label %else25

then24:                                           ; preds = %loop.end23
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @22, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @20, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @21, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont26

else25:                                           ; preds = %loop.end23
  br label %ifcont26

ifcont26:                                         ; preds = %else25, %then24
  %64 = load i32, i32* %j2, align 4
  %65 = sext i32 %64 to i64
  %66 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %65)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @24, i32 0, i32 0), i8* %66, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @23, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 -2, i32* %i1, align 4
  br label %loop.head27

loop.head27:                                      ; preds = %loop.body28, %ifcont26
  %67 = load i32, i32* %i1, align 4
  %68 = add i32 %67, 3
  %69 = icmp sle i32 %68, 10
  br i1 %69, label %loop.body28, label %loop.end29

loop.body28:                                      ; preds = %loop.head27
  %70 = load i32, i32* %i1, align 4
  %71 = add i32 %70, 3
  store i32 %71, i32* %i1, align 4
  %72 = load i32, i32* %j2, align 4
  %73 = load i32, i32* %i1, align 4
  %74 = add i32 %72, %73
  store i32 %74, i32* %j2, align 4
  br label %loop.head27

loop.end29:                                       ; preds = %loop.head27
  %75 = load i32, i32* %j2, align 4
  %76 = icmp ne i32 %75, 22
  br i1 %76, label %then30, label %else31

then30:                                           ; preds = %loop.end29
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @27, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @25, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @26, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont32

else31:                                           ; preds = %loop.end29
  br label %ifcont32

ifcont32:                                         ; preds = %else31, %then30
  %77 = load i32, i32* %j2, align 4
  %78 = sext i32 %77 to i64
  %79 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %78)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @29, i32 0, i32 0), i8* %79, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @28, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 13, i32* %i1, align 4
  br label %loop.head33

loop.head33:                                      ; preds = %loop.body34, %ifcont32
  %80 = load i32, i32* %i1, align 4
  %81 = add i32 %80, -3
  %82 = icmp sge i32 %81, 1
  br i1 %82, label %loop.body34, label %loop.end35

loop.body34:                                      ; preds = %loop.head33
  %83 = load i32, i32* %i1, align 4
  %84 = add i32 %83, -3
  store i32 %84, i32* %i1, align 4
  %85 = load i32, i32* %j2, align 4
  %86 = load i32, i32* %i1, align 4
  %87 = add i32 %85, %86
  store i32 %87, i32* %j2, align 4
  br label %loop.head33

loop.end35:                                       ; preds = %loop.head33
  %88 = load i32, i32* %j2, align 4
  %89 = icmp ne i32 %88, 22
  br i1 %89, label %then36, label %else37

then36:                                           ; preds = %loop.end35
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @32, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @30, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @31, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont38

else37:                                           ; preds = %loop.end35
  br label %ifcont38

ifcont38:                                         ; preds = %else37, %then36
  %90 = load i32, i32* %j2, align 4
  %91 = sext i32 %90 to i64
  %92 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %91)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @34, i32 0, i32 0), i8* %92, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @33, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 0, i32* %i1, align 4
  br label %loop.head39

loop.head39:                                      ; preds = %loop.body40, %ifcont38
  %93 = load i32, i32* %i1, align 4
  %94 = add i32 %93, 1
  %95 = icmp sle i32 %94, 1
  br i1 %95, label %loop.body40, label %loop.end41

loop.body40:                                      ; preds = %loop.head39
  %96 = load i32, i32* %i1, align 4
  %97 = add i32 %96, 1
  store i32 %97, i32* %i1, align 4
  %98 = load i32, i32* %j2, align 4
  %99 = load i32, i32* %i1, align 4
  %100 = add i32 %98, %99
  store i32 %100, i32* %j2, align 4
  br label %loop.head39

loop.end41:                                       ; preds = %loop.head39
  %101 = load i32, i32* %j2, align 4
  %102 = icmp ne i32 %101, 1
  br i1 %102, label %then42, label %else43

then42:                                           ; preds = %loop.end41
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @37, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @35, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @36, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont44

else43:                                           ; preds = %loop.end41
  br label %ifcont44

ifcont44:                                         ; preds = %else43, %then42
  %103 = load i32, i32* %j2, align 4
  %104 = sext i32 %103 to i64
  %105 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %104)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @39, i32 0, i32 0), i8* %105, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @38, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 2, i32* %i1, align 4
  br label %loop.head45

loop.head45:                                      ; preds = %loop.body46, %ifcont44
  %106 = load i32, i32* %i1, align 4
  %107 = add i32 %106, -1
  %108 = icmp sge i32 %107, 1
  br i1 %108, label %loop.body46, label %loop.end47

loop.body46:                                      ; preds = %loop.head45
  %109 = load i32, i32* %i1, align 4
  %110 = add i32 %109, -1
  store i32 %110, i32* %i1, align 4
  %111 = load i32, i32* %j2, align 4
  %112 = load i32, i32* %i1, align 4
  %113 = add i32 %111, %112
  store i32 %113, i32* %j2, align 4
  br label %loop.head45

loop.end47:                                       ; preds = %loop.head45
  %114 = load i32, i32* %j2, align 4
  %115 = icmp ne i32 %114, 1
  br i1 %115, label %then48, label %else49

then48:                                           ; preds = %loop.end47
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @42, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @40, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @41, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont50

else49:                                           ; preds = %loop.end47
  br label %ifcont50

ifcont50:                                         ; preds = %else49, %then48
  %116 = load i32, i32* %j2, align 4
  %117 = sext i32 %116 to i64
  %118 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %117)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @44, i32 0, i32 0), i8* %118, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @43, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 0, i32* %i1, align 4
  br label %loop.head51

loop.head51:                                      ; preds = %loop.body52, %ifcont50
  %119 = load i32, i32* %i1, align 4
  %120 = add i32 %119, 1
  %121 = icmp sle i32 %120, 0
  br i1 %121, label %loop.body52, label %loop.end53

loop.body52:                                      ; preds = %loop.head51
  %122 = load i32, i32* %i1, align 4
  %123 = add i32 %122, 1
  store i32 %123, i32* %i1, align 4
  %124 = load i32, i32* %j2, align 4
  %125 = load i32, i32* %i1, align 4
  %126 = add i32 %124, %125
  store i32 %126, i32* %j2, align 4
  br label %loop.head51

loop.end53:                                       ; preds = %loop.head51
  %127 = load i32, i32* %j2, align 4
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %then54, label %else55

then54:                                           ; preds = %loop.end53
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @47, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @45, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @46, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont56

else55:                                           ; preds = %loop.end53
  br label %ifcont56

ifcont56:                                         ; preds = %else55, %then54
  %129 = load i32, i32* %j2, align 4
  %130 = sext i32 %129 to i64
  %131 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %130)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @49, i32 0, i32 0), i8* %131, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @48, i32 0, i32 0))
  store i32 0, i32* %j2, align 4
  store i32 1, i32* %i1, align 4
  br label %loop.head57

loop.head57:                                      ; preds = %loop.body58, %ifcont56
  %132 = load i32, i32* %i1, align 4
  %133 = add i32 %132, -1
  %134 = icmp sge i32 %133, 1
  br i1 %134, label %loop.body58, label %loop.end59

loop.body58:                                      ; preds = %loop.head57
  %135 = load i32, i32* %i1, align 4
  %136 = add i32 %135, -1
  store i32 %136, i32* %i1, align 4
  %137 = load i32, i32* %j2, align 4
  %138 = load i32, i32* %i1, align 4
  %139 = add i32 %137, %138
  store i32 %139, i32* %j2, align 4
  br label %loop.head57

loop.end59:                                       ; preds = %loop.head57
  %140 = load i32, i32* %j2, align 4
  %141 = icmp ne i32 %140, 0
  br i1 %141, label %then60, label %else61

then60:                                           ; preds = %loop.end59
  call void (i8*, ...) @_lcompilers_print_error(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @52, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @50, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @51, i32 0, i32 0))
  call void @exit(i32 1)
  br label %ifcont62

else61:                                           ; preds = %loop.end59
  br label %ifcont62

ifcont62:                                         ; preds = %else61, %then60
  %142 = load i32, i32* %j2, align 4
  %143 = sext i32 %142 to i64
  %144 = call i8* (i32, i8*, ...) @_lcompilers_string_format_fortran(i32 2, i8* null, i32 2, i64 %143)
  call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @54, i32 0, i32 0), i8* %144, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @53, i32 0, i32 0))
  call void @_lpython_free_argv()
  br label %return

return:                                           ; preds = %ifcont62
  ret i32 0
}

declare void @_lpython_call_initial_functions(i32, i8**)

declare void @_lcompilers_print_error(i8*, ...)

declare void @exit(i32)

declare i8* @_lcompilers_string_format_fortran(i32, i8*, ...)

declare void @_lfortran_printf(i8*, ...)

declare void @_lpython_free_argv()
