program ccc
implicit none

integer :: l, i, res1, res2
character(10**5+1) :: s, s1, s2

read*, s
s=trim(s)
l=len_trim(s)

res1=0
res2=0
do i=1,l,2
s1(i:i)='0'
s1(i+1:i+1)='1'
s2(i:i)='1'
s2(i+1:i+1)='0'
end do

s1=trim(s1(1:l))
s2=trim(s2(1:l))

do i=1,l
if(s(i:i)==s1(i:i)) res1=res1+1
if(s(i:i)==s2(i:i)) res2=res2+1
end do

write(*,'(i0)') min(res1,res2)

end program
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@_QFEs = internal global [100001 x i8] undef
@_QFEs1 = internal global [100001 x i8] undef
@_QFEs2 = internal global [100001 x i8] undef
@_QQcl.fd0f155d5372523849f8d7ff38044ac8 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_4485/source.f\00"
@_QQcl.30 = linkonce local_unnamed_addr constant [1 x i8] c"0"
@_QQcl.31 = linkonce local_unnamed_addr constant [1 x i8] c"1"
@_QQcl.28693029 = linkonce constant [4 x i8] c"(i0)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #0

define void @_QQmain() local_unnamed_addr {
  %1 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %2 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %3 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %4 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %5 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %6 = alloca { ptr, i64, i32, i8, i8, i8, i8 }, align 8
  %7 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.fd0f155d5372523849f8d7ff38044ac8, i32 7)
  %8 = tail call i1 @_FortranAioInputAscii(ptr %7, ptr nonnull @_QFEs, i64 100001)
  %9 = tail call i32 @_FortranAioEndIoStatement(ptr %7)
  store ptr @_QFEs, ptr %3, align 8, !tbaa !3
  %.fca.1.gep94 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 1
  store i64 100001, ptr %.fca.1.gep94, align 8, !tbaa !3
  %.fca.2.gep95 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep95, align 8, !tbaa !3
  %.fca.3.gep96 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep96, align 4, !tbaa !3
  %.fca.4.gep97 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep97, align 1, !tbaa !3
  %.fca.5.gep98 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep98, align 2, !tbaa !3
  %.fca.6.gep99 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %3, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep99, align 1, !tbaa !3
  %.fca.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 1
  %.fca.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep, align 8, !tbaa !3
  %.fca.3.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep, align 4, !tbaa !3
  %.fca.4.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep, align 1, !tbaa !3
  %.fca.5.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep, align 2, !tbaa !3
  %.fca.6.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %6, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep, align 1, !tbaa !3
  %10 = call {} @_FortranATrim(ptr nonnull %6, ptr nonnull %3, ptr nonnull @_QQcl.fd0f155d5372523849f8d7ff38044ac8, i32 8)
  %.fca.0.load = load ptr, ptr %6, align 8, !tbaa !3
  %.fca.1.load = load i64, ptr %.fca.1.gep, align 8, !tbaa !3
  %11 = call i64 @llvm.smin.i64(i64 %.fca.1.load, i64 100001)
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 16 @_QFEs, ptr align 1 %.fca.0.load, i64 %11, i1 false)
  %12 = sub i64 100001, %11
  %13 = icmp sgt i64 %12, 0
  br i1 %13, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %0
  %uglygep = getelementptr i8, ptr @_QFEs, i64 %11
  call void @llvm.memset.p0.i64(ptr align 1 %uglygep, i8 32, i64 %12, i1 false), !tbaa !7
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.preheader, %0
  call void @free(ptr %.fca.0.load)
  br label %14

14:                                               ; preds = %._crit_edge, %14
  %15 = phi i64 [ 100000, %._crit_edge ], [ %19, %14 ]
  %16 = getelementptr [100001 x [1 x i8]], ptr @_QFEs, i64 0, i64 %15
  %17 = load i8, ptr %16, align 1, !tbaa !7
  %18 = icmp eq i8 %17, 32
  %19 = add nsw i64 %15, -1
  %20 = icmp ne i64 %15, 0
  %21 = and i1 %18, %20
  br i1 %21, label %14, label %22

22:                                               ; preds = %14
  %23 = shl i64 %15, 32
  %sext = add i64 %23, 4294967296
  %24 = ashr exact i64 %sext, 32
  %25 = select i1 %18, i64 0, i64 %24
  %26 = icmp sgt i64 %25, 0
  br i1 %26, label %.lr.ph241, label %._crit_edge242

.lr.ph241:                                        ; preds = %22
  %.lhs.trunc = add nsw i64 %25, 1
  %27 = lshr i64 %.lhs.trunc, 1
  %.zext = and i64 %27, 2147483647
  %28 = load i8, ptr @_QQcl.30, align 1
  %29 = load i8, ptr @_QQcl.31, align 1
  %30 = add nuw nsw i64 %.zext, 1
  %31 = icmp ne i64 %.zext, 0
  %umin264.neg = sext i1 %31 to i64
  %32 = add nsw i64 %30, %umin264.neg
  %min.iters.check = icmp ult i64 %32, 16
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph241
  %33 = icmp ne i64 %.zext, 0
  %umin.neg = sext i1 %33 to i64
  %34 = add nsw i64 %.zext, %umin.neg
  %35 = icmp ugt i64 %34, 1073741823
  %36 = trunc i64 %34 to i32
  %mul.result262 = shl i32 %36, 1
  %37 = icmp ugt i32 %mul.result262, 2147483645
  %38 = or i1 %37, %35
  br i1 %38, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.scevcheck
  %n.vec = and i64 %32, -16
  %ind.end = sub nsw i64 %.zext, %n.vec
  %.cast = trunc i64 %n.vec to i32
  %39 = shl i32 %.cast, 1
  %ind.end265 = or i32 %39, 1
  %broadcast.splatinsert = insertelement <8 x i8> poison, i8 %28, i64 0
  %broadcast.splat = shufflevector <8 x i8> %broadcast.splatinsert, <8 x i8> poison, <8 x i32> zeroinitializer
  %broadcast.splatinsert268 = insertelement <8 x i8> poison, i8 %29, i64 0
  %broadcast.splat269 = shufflevector <8 x i8> %broadcast.splatinsert268, <8 x i8> poison, <8 x i32> zeroinitializer
  %broadcast.splatinsert270 = insertelement <8 x i8> poison, i8 %28, i64 0
  %broadcast.splat271 = shufflevector <8 x i8> %broadcast.splatinsert270, <8 x i8> poison, <8 x i32> zeroinitializer
  %broadcast.splatinsert272 = insertelement <8 x i8> poison, i8 %29, i64 0
  %broadcast.splat273 = shufflevector <8 x i8> %broadcast.splatinsert272, <8 x i8> poison, <8 x i32> zeroinitializer
  %interleaved.vec = shufflevector <8 x i8> %broadcast.splat, <8 x i8> %broadcast.splat269, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  %interleaved.vec274 = shufflevector <8 x i8> %broadcast.splat271, <8 x i8> %broadcast.splat273, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  %interleaved.vec275 = shufflevector <8 x i8> %broadcast.splat269, <8 x i8> %broadcast.splat, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  %interleaved.vec276 = shufflevector <8 x i8> %broadcast.splat273, <8 x i8> %broadcast.splat271, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %.cast267 = trunc i64 %index to i32
  %40 = shl i32 %.cast267, 1
  %narrow = or i32 %40, 1
  %41 = sext i32 %narrow to i64
  %narrow278 = or i32 %40, 17
  %42 = sext i32 %narrow278 to i64
  %43 = getelementptr [100001 x [1 x i8]], ptr @_QFEs1, i64 0, i64 %41
  %44 = getelementptr [100001 x [1 x i8]], ptr @_QFEs1, i64 0, i64 %42
  %45 = getelementptr i8, ptr %43, i64 -1
  %46 = getelementptr i8, ptr %44, i64 -1
  store <16 x i8> %interleaved.vec, ptr %45, align 2
  store <16 x i8> %interleaved.vec274, ptr %46, align 2
  %47 = getelementptr [100001 x [1 x i8]], ptr @_QFEs2, i64 0, i64 %41
  %48 = getelementptr [100001 x [1 x i8]], ptr @_QFEs2, i64 0, i64 %42
  %49 = getelementptr i8, ptr %47, i64 -1
  %50 = getelementptr i8, ptr %48, i64 -1
  store <16 x i8> %interleaved.vec275, ptr %49, align 2
  store <16 x i8> %interleaved.vec276, ptr %50, align 2
  %index.next = add nuw i64 %index, 16
  %51 = icmp eq i64 %index.next, %n.vec
  br i1 %51, label %middle.block, label %vector.body, !llvm.loop !9

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %32, %n.vec
  br i1 %cmp.n, label %._crit_edge242, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %vector.scevcheck, %.lr.ph241, %middle.block
  %.ph = phi i64 [ %.zext, %vector.scevcheck ], [ %.zext, %.lr.ph241 ], [ %ind.end, %middle.block ]
  %.ph279 = phi i32 [ 1, %vector.scevcheck ], [ 1, %.lr.ph241 ], [ %ind.end265, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %52 = phi i64 [ %64, %scalar.ph ], [ %.ph, %scalar.ph.preheader ]
  %53 = phi i32 [ %63, %scalar.ph ], [ %.ph279, %scalar.ph.preheader ]
  %54 = sext i32 %53 to i64
  %55 = add nsw i64 %54, -1
  %56 = getelementptr [100001 x [1 x i8]], ptr @_QFEs1, i64 0, i64 %55
  store i8 %28, ptr %56, align 1
  %57 = add nuw i32 %53, 1
  %58 = sext i32 %57 to i64
  %59 = add nsw i64 %58, -1
  %60 = getelementptr [100001 x [1 x i8]], ptr @_QFEs1, i64 0, i64 %59
  store i8 %29, ptr %60, align 1
  %61 = getelementptr [100001 x [1 x i8]], ptr @_QFEs2, i64 0, i64 %55
  store i8 %29, ptr %61, align 1
  %62 = getelementptr [100001 x [1 x i8]], ptr @_QFEs2, i64 0, i64 %59
  store i8 %28, ptr %62, align 1
  %63 = add nuw i32 %53, 2
  %64 = add nsw i64 %52, -1
  %65 = icmp ugt i64 %52, 1
  br i1 %65, label %scalar.ph, label %._crit_edge242, !llvm.loop !12

._crit_edge242:                                   ; preds = %scalar.ph, %middle.block, %22
  %66 = call i64 @llvm.smax.i64(i64 %25, i64 0)
  store ptr @_QFEs1, ptr %2, align 8, !tbaa !3
  %.fca.1.gep188 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 1
  store i64 %66, ptr %.fca.1.gep188, align 8, !tbaa !3
  %.fca.2.gep190 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep190, align 8, !tbaa !3
  %.fca.3.gep192 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep192, align 4, !tbaa !3
  %.fca.4.gep194 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep194, align 1, !tbaa !3
  %.fca.5.gep196 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep196, align 2, !tbaa !3
  %.fca.6.gep198 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %2, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep198, align 1, !tbaa !3
  %.fca.1.gep26 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 1
  %.fca.2.gep28 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %5, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep28, align 8, !tbaa !3
  %.fca.3.gep30 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep30, align 4, !tbaa !3
  %.fca.4.gep32 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep32, align 1, !tbaa !3
  %.fca.5.gep34 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep34, align 2, !tbaa !3
  %.fca.6.gep36 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %5, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep36, align 1, !tbaa !3
  %67 = call {} @_FortranATrim(ptr nonnull %5, ptr nonnull %2, ptr nonnull @_QQcl.fd0f155d5372523849f8d7ff38044ac8, i32 20)
  %.fca.0.load38 = load ptr, ptr %5, align 8, !tbaa !3
  %.fca.1.load41 = load i64, ptr %.fca.1.gep26, align 8, !tbaa !3
  %68 = call i64 @llvm.smin.i64(i64 %.fca.1.load41, i64 100001)
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 16 @_QFEs1, ptr align 1 %.fca.0.load38, i64 %68, i1 false)
  %69 = sub i64 100001, %68
  %70 = icmp sgt i64 %69, 0
  br i1 %70, label %.lr.ph244.preheader, label %._crit_edge245

.lr.ph244.preheader:                              ; preds = %._crit_edge242
  %uglygep256 = getelementptr i8, ptr @_QFEs1, i64 %68
  call void @llvm.memset.p0.i64(ptr align 1 %uglygep256, i8 32, i64 %69, i1 false), !tbaa !7
  br label %._crit_edge245

._crit_edge245:                                   ; preds = %.lr.ph244.preheader, %._crit_edge242
  call void @free(ptr %.fca.0.load38)
  store ptr @_QFEs2, ptr %1, align 8, !tbaa !3
  %.fca.1.gep209 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 1
  store i64 %66, ptr %.fca.1.gep209, align 8, !tbaa !3
  %.fca.2.gep211 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep211, align 8, !tbaa !3
  %.fca.3.gep213 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep213, align 4, !tbaa !3
  %.fca.4.gep215 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep215, align 1, !tbaa !3
  %.fca.5.gep217 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep217, align 2, !tbaa !3
  %.fca.6.gep219 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %1, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep219, align 1, !tbaa !3
  %.fca.1.gep61 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 1
  %.fca.2.gep63 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %4, i8 0, i64 16, i1 false)
  store i32 20180515, ptr %.fca.2.gep63, align 8, !tbaa !3
  %.fca.3.gep65 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 3
  store i8 0, ptr %.fca.3.gep65, align 4, !tbaa !3
  %.fca.4.gep67 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 4
  store i8 40, ptr %.fca.4.gep67, align 1, !tbaa !3
  %.fca.5.gep69 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 5
  store i8 2, ptr %.fca.5.gep69, align 2, !tbaa !3
  %.fca.6.gep71 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8 }, ptr %4, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep71, align 1, !tbaa !3
  %71 = call {} @_FortranATrim(ptr nonnull %4, ptr nonnull %1, ptr nonnull @_QQcl.fd0f155d5372523849f8d7ff38044ac8, i32 21)
  %.fca.0.load73 = load ptr, ptr %4, align 8, !tbaa !3
  %.fca.1.load76 = load i64, ptr %.fca.1.gep61, align 8, !tbaa !3
  %72 = call i64 @llvm.smin.i64(i64 %.fca.1.load76, i64 100001)
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 16 @_QFEs2, ptr align 1 %.fca.0.load73, i64 %72, i1 false)
  %73 = sub i64 100001, %72
  %74 = icmp sgt i64 %73, 0
  br i1 %74, label %.lr.ph247.preheader, label %._crit_edge248

.lr.ph247.preheader:                              ; preds = %._crit_edge245
  %uglygep257 = getelementptr i8, ptr @_QFEs2, i64 %72
  call void @llvm.memset.p0.i64(ptr align 1 %uglygep257, i8 32, i64 %73, i1 false), !tbaa !7
  br label %._crit_edge248

._crit_edge248:                                   ; preds = %.lr.ph247.preheader, %._crit_edge245
  call void @free(ptr %.fca.0.load73)
  br i1 %26, label %.lr.ph252, label %._crit_edge253

.lr.ph252:                                        ; preds = %._crit_edge248, %.lr.ph252
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph252 ], [ 1, %._crit_edge248 ]
  %.0250 = phi i32 [ %.1, %.lr.ph252 ], [ 0, %._crit_edge248 ]
  %.0227249 = phi i32 [ %spec.select, %.lr.ph252 ], [ 0, %._crit_edge248 ]
  %75 = add nsw i64 %indvars.iv, -1
  %76 = getelementptr [100001 x [1 x i8]], ptr @_QFEs, i64 0, i64 %75
  %77 = getelementptr [100001 x [1 x i8]], ptr @_QFEs1, i64 0, i64 %75
  %78 = call i32 @_FortranACharacterCompareScalar1(ptr %76, ptr %77, i64 1, i64 1)
  %79 = icmp eq i32 %78, 0
  %80 = zext i1 %79 to i32
  %spec.select = add i32 %.0227249, %80
  %81 = getelementptr [100001 x [1 x i8]], ptr @_QFEs2, i64 0, i64 %75
  %82 = call i32 @_FortranACharacterCompareScalar1(ptr %76, ptr %81, i64 1, i64 1)
  %83 = icmp eq i32 %82, 0
  %84 = zext i1 %83 to i32
  %.1 = add i32 %.0250, %84
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv, %25
  br i1 %exitcond.not, label %._crit_edge253, label %.lr.ph252

._crit_edge253:                                   ; preds = %.lr.ph252, %._crit_edge248
  %.0227.lcssa = phi i32 [ 0, %._crit_edge248 ], [ %spec.select, %.lr.ph252 ]
  %.0.lcssa = phi i32 [ 0, %._crit_edge248 ], [ %.1, %.lr.ph252 ]
  %85 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.fd0f155d5372523849f8d7ff38044ac8, i32 28)
  %86 = call i32 @llvm.smin.i32(i32 %.0227.lcssa, i32 %.0.lcssa)
  %87 = call i1 @_FortranAioOutputInteger32(ptr %85, i32 %86)
  %88 = call i32 @_FortranAioEndIoStatement(ptr %85)
  ret void
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputAscii(ptr, ptr, i64) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare {} @_FortranATrim(ptr, ptr, ptr, i32) local_unnamed_addr

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #1

declare i32 @_FortranACharacterCompareScalar1(ptr, ptr, i64, i64) local_unnamed_addr

declare ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

attributes #0 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"descriptor member", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"any data access", !5, i64 0}
!9 = distinct !{!9, !10, !11}
!10 = !{!"llvm.loop.isvectorized", i32 1}
!11 = !{!"llvm.loop.unroll.runtime.disable"}
!12 = distinct !{!12, !10}
