program sample
    implicit none  !二分探索
    integer(8) ::c,i,j,m(12),n,k,a1,b1,c1
    character(len=1)::a
    character(len=1),allocatable::s(:)
    character(len=1)::t(1:26)
    t=(/'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'/)
    read(*,*) a

    do i=1,26
        if(a==t(i))then
            write(*,*)'a'
            stop
        end if
    end do
    write(*,*)'A'
    stop

end program sample
  


; 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"

@_QQro.26x1xc1.c3fcd3d76192e4007dfb496cca67e13b = internal unnamed_addr constant [26 x [1 x i8]] [[1 x i8] c"a", [1 x i8] c"b", [1 x i8] c"c", [1 x i8] c"d", [1 x i8] c"e", [1 x i8] c"f", [1 x i8] c"g", [1 x i8] c"h", [1 x i8] c"i", [1 x i8] c"j", [1 x i8] c"k", [1 x i8] c"l", [1 x i8] c"m", [1 x i8] c"n", [1 x i8] c"o", [1 x i8] c"p", [1 x i8] c"q", [1 x i8] c"r", [1 x i8] c"s", [1 x i8] c"t", [1 x i8] c"u", [1 x i8] c"v", [1 x i8] c"w", [1 x i8] c"x", [1 x i8] c"y", [1 x i8] c"z"]
@_QQcl.bf1b46318b1728008582e5970f0fd9cf = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_1107/source.f\00"
@_QQcl.61 = linkonce constant [1 x i8] c"a"
@_QQcl.41 = linkonce constant [1 x i8] c"A"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: noreturn
define void @_QQmain() local_unnamed_addr #0 {
  %1 = alloca [1 x i8], align 1
  %2 = alloca [26 x [1 x i8]], align 1
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(26) %2, ptr noundef nonnull align 16 dereferenceable(26) @_QQro.26x1xc1.c3fcd3d76192e4007dfb496cca67e13b, i64 26, i1 false), !tbaa !3
  %3 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.bf1b46318b1728008582e5970f0fd9cf, i32 8)
  %4 = call i1 @_FortranAioInputAscii(ptr %3, ptr nonnull %1, i64 1)
  %5 = call i32 @_FortranAioEndIoStatement(ptr %3)
  %6 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %2, i64 1, i64 1)
  %7 = icmp eq i32 %6, 0
  br i1 %7, label %8, label %13

8:                                                ; preds = %109, %105, %101, %97, %93, %89, %85, %81, %77, %73, %69, %65, %61, %57, %53, %49, %45, %41, %37, %33, %29, %25, %21, %17, %13, %0
  %9 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.bf1b46318b1728008582e5970f0fd9cf, i32 12)
  %10 = call i1 @_FortranAioOutputAscii(ptr %9, ptr nonnull @_QQcl.61, i64 1)
  %11 = call i32 @_FortranAioEndIoStatement(ptr %9)
  %12 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

13:                                               ; preds = %0
  %14 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 1
  %15 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %14, i64 1, i64 1)
  %16 = icmp eq i32 %15, 0
  br i1 %16, label %8, label %17

17:                                               ; preds = %13
  %18 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 2
  %19 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %18, i64 1, i64 1)
  %20 = icmp eq i32 %19, 0
  br i1 %20, label %8, label %21

21:                                               ; preds = %17
  %22 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 3
  %23 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %22, i64 1, i64 1)
  %24 = icmp eq i32 %23, 0
  br i1 %24, label %8, label %25

25:                                               ; preds = %21
  %26 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 4
  %27 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %26, i64 1, i64 1)
  %28 = icmp eq i32 %27, 0
  br i1 %28, label %8, label %29

29:                                               ; preds = %25
  %30 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 5
  %31 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %30, i64 1, i64 1)
  %32 = icmp eq i32 %31, 0
  br i1 %32, label %8, label %33

33:                                               ; preds = %29
  %34 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 6
  %35 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %34, i64 1, i64 1)
  %36 = icmp eq i32 %35, 0
  br i1 %36, label %8, label %37

37:                                               ; preds = %33
  %38 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 7
  %39 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %38, i64 1, i64 1)
  %40 = icmp eq i32 %39, 0
  br i1 %40, label %8, label %41

41:                                               ; preds = %37
  %42 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 8
  %43 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %42, i64 1, i64 1)
  %44 = icmp eq i32 %43, 0
  br i1 %44, label %8, label %45

45:                                               ; preds = %41
  %46 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 9
  %47 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %46, i64 1, i64 1)
  %48 = icmp eq i32 %47, 0
  br i1 %48, label %8, label %49

49:                                               ; preds = %45
  %50 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 10
  %51 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %50, i64 1, i64 1)
  %52 = icmp eq i32 %51, 0
  br i1 %52, label %8, label %53

53:                                               ; preds = %49
  %54 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 11
  %55 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %54, i64 1, i64 1)
  %56 = icmp eq i32 %55, 0
  br i1 %56, label %8, label %57

57:                                               ; preds = %53
  %58 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 12
  %59 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %58, i64 1, i64 1)
  %60 = icmp eq i32 %59, 0
  br i1 %60, label %8, label %61

61:                                               ; preds = %57
  %62 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 13
  %63 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %62, i64 1, i64 1)
  %64 = icmp eq i32 %63, 0
  br i1 %64, label %8, label %65

65:                                               ; preds = %61
  %66 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 14
  %67 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %66, i64 1, i64 1)
  %68 = icmp eq i32 %67, 0
  br i1 %68, label %8, label %69

69:                                               ; preds = %65
  %70 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 15
  %71 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %70, i64 1, i64 1)
  %72 = icmp eq i32 %71, 0
  br i1 %72, label %8, label %73

73:                                               ; preds = %69
  %74 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 16
  %75 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %74, i64 1, i64 1)
  %76 = icmp eq i32 %75, 0
  br i1 %76, label %8, label %77

77:                                               ; preds = %73
  %78 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 17
  %79 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %78, i64 1, i64 1)
  %80 = icmp eq i32 %79, 0
  br i1 %80, label %8, label %81

81:                                               ; preds = %77
  %82 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 18
  %83 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %82, i64 1, i64 1)
  %84 = icmp eq i32 %83, 0
  br i1 %84, label %8, label %85

85:                                               ; preds = %81
  %86 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 19
  %87 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %86, i64 1, i64 1)
  %88 = icmp eq i32 %87, 0
  br i1 %88, label %8, label %89

89:                                               ; preds = %85
  %90 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 20
  %91 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %90, i64 1, i64 1)
  %92 = icmp eq i32 %91, 0
  br i1 %92, label %8, label %93

93:                                               ; preds = %89
  %94 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 21
  %95 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %94, i64 1, i64 1)
  %96 = icmp eq i32 %95, 0
  br i1 %96, label %8, label %97

97:                                               ; preds = %93
  %98 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 22
  %99 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %98, i64 1, i64 1)
  %100 = icmp eq i32 %99, 0
  br i1 %100, label %8, label %101

101:                                              ; preds = %97
  %102 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 23
  %103 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %102, i64 1, i64 1)
  %104 = icmp eq i32 %103, 0
  br i1 %104, label %8, label %105

105:                                              ; preds = %101
  %106 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 24
  %107 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %106, i64 1, i64 1)
  %108 = icmp eq i32 %107, 0
  br i1 %108, label %8, label %109

109:                                              ; preds = %105
  %110 = getelementptr inbounds [26 x [1 x i8]], ptr %2, i64 0, i64 25
  %111 = call i32 @_FortranACharacterCompareScalar1(ptr nonnull %1, ptr nonnull %110, i64 1, i64 1)
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %8, label %113

113:                                              ; preds = %109
  %114 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.bf1b46318b1728008582e5970f0fd9cf, i32 16)
  %115 = call i1 @_FortranAioOutputAscii(ptr %114, ptr nonnull @_QQcl.41, i64 1)
  %116 = call i32 @_FortranAioEndIoStatement(ptr %114)
  %117 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable
}

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 i32 @_FortranACharacterCompareScalar1(ptr, ptr, i64, i64) local_unnamed_addr

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

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

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

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

attributes #0 = { noreturn }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }

!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 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
