PROGRAM ATCODER

implicit none
integer :: a(5),k,i,j

do i = 1,5
  read*, a(i)
end do

read*, k

do i = 1, 5, 1
  do j = 1, 5, 1
    if ( i == j ) cycle
    if ( abs(a(i)-a(j)) > k ) then
      print'(a)', ':(' 
      stop
    end if
  end do
end do

print'(a)', 'Yay!'

END PROGRAM ATCODER
; 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"

@_QQcl.e374f9a662da4c1875cb05eb1b1adee4 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_4534/source.f\00"
@_QQcl.286129 = linkonce constant [3 x i8] c"(a)"
@_QQcl.3A28 = linkonce constant [2 x i8] c":("
@_QQcl.59617921 = linkonce constant [4 x i8] c"Yay!"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

define void @_QQmain() local_unnamed_addr {
  %1 = alloca [5 x i32], align 4
  %2 = alloca i32, align 4
  %3 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 7)
  %4 = call i1 @_FortranAioInputInteger(ptr %3, ptr nonnull %1, i32 4)
  %5 = call i32 @_FortranAioEndIoStatement(ptr %3)
  %6 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 7)
  %7 = getelementptr inbounds [5 x i32], ptr %1, i64 0, i64 1
  %8 = call i1 @_FortranAioInputInteger(ptr %6, ptr nonnull %7, i32 4)
  %9 = call i32 @_FortranAioEndIoStatement(ptr %6)
  %10 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 7)
  %11 = getelementptr inbounds [5 x i32], ptr %1, i64 0, i64 2
  %12 = call i1 @_FortranAioInputInteger(ptr %10, ptr nonnull %11, i32 4)
  %13 = call i32 @_FortranAioEndIoStatement(ptr %10)
  %14 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 7)
  %15 = getelementptr inbounds [5 x i32], ptr %1, i64 0, i64 3
  %16 = call i1 @_FortranAioInputInteger(ptr %14, ptr nonnull %15, i32 4)
  %17 = call i32 @_FortranAioEndIoStatement(ptr %14)
  %18 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 7)
  %19 = getelementptr inbounds [5 x i32], ptr %1, i64 0, i64 4
  %20 = call i1 @_FortranAioInputInteger(ptr %18, ptr nonnull %19, i32 4)
  %21 = call i32 @_FortranAioEndIoStatement(ptr %18)
  %22 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 10)
  %23 = call i1 @_FortranAioInputInteger(ptr %22, ptr nonnull %2, i32 4)
  %24 = call i32 @_FortranAioEndIoStatement(ptr %22)
  %25 = load i32, ptr %2, align 4
  %26 = load i32, ptr %1, align 4, !tbaa !3
  %27 = load i32, ptr %7, align 4, !tbaa !3
  %28 = sub i32 %26, %27
  %29 = call i32 @llvm.abs.i32(i32 %28, i1 false)
  %30 = icmp sgt i32 %29, %25
  br i1 %30, label %31, label %36

31:                                               ; preds = %140, %134, %128, %.preheader.4, %117, %111, %105, %.preheader.3, %94, %88, %82, %.preheader.2, %71, %65, %59, %.preheader.1, %48, %42, %36, %0
  %32 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.286129, i64 3, ptr null, i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 16)
  %33 = call i1 @_FortranAioOutputAscii(ptr %32, ptr nonnull @_QQcl.3A28, i64 2)
  %34 = call i32 @_FortranAioEndIoStatement(ptr %32)
  %35 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

36:                                               ; preds = %0
  %37 = load i32, ptr %1, align 4, !tbaa !3
  %38 = load i32, ptr %11, align 4, !tbaa !3
  %39 = sub i32 %37, %38
  %40 = call i32 @llvm.abs.i32(i32 %39, i1 false)
  %41 = icmp sgt i32 %40, %25
  br i1 %41, label %31, label %42

42:                                               ; preds = %36
  %43 = load i32, ptr %1, align 4, !tbaa !3
  %44 = load i32, ptr %15, align 4, !tbaa !3
  %45 = sub i32 %43, %44
  %46 = call i32 @llvm.abs.i32(i32 %45, i1 false)
  %47 = icmp sgt i32 %46, %25
  br i1 %47, label %31, label %48

48:                                               ; preds = %42
  %49 = load i32, ptr %1, align 4, !tbaa !3
  %50 = load i32, ptr %19, align 4, !tbaa !3
  %51 = sub i32 %49, %50
  %52 = call i32 @llvm.abs.i32(i32 %51, i1 false)
  %53 = icmp sgt i32 %52, %25
  br i1 %53, label %31, label %.preheader.1

.preheader.1:                                     ; preds = %48
  %54 = load i32, ptr %7, align 4, !tbaa !3
  %55 = load i32, ptr %1, align 4, !tbaa !3
  %56 = sub i32 %54, %55
  %57 = call i32 @llvm.abs.i32(i32 %56, i1 false)
  %58 = icmp sgt i32 %57, %25
  br i1 %58, label %31, label %59

59:                                               ; preds = %.preheader.1
  %60 = load i32, ptr %7, align 4, !tbaa !3
  %61 = load i32, ptr %11, align 4, !tbaa !3
  %62 = sub i32 %60, %61
  %63 = call i32 @llvm.abs.i32(i32 %62, i1 false)
  %64 = icmp sgt i32 %63, %25
  br i1 %64, label %31, label %65

65:                                               ; preds = %59
  %66 = load i32, ptr %7, align 4, !tbaa !3
  %67 = load i32, ptr %15, align 4, !tbaa !3
  %68 = sub i32 %66, %67
  %69 = call i32 @llvm.abs.i32(i32 %68, i1 false)
  %70 = icmp sgt i32 %69, %25
  br i1 %70, label %31, label %71

71:                                               ; preds = %65
  %72 = load i32, ptr %7, align 4, !tbaa !3
  %73 = load i32, ptr %19, align 4, !tbaa !3
  %74 = sub i32 %72, %73
  %75 = call i32 @llvm.abs.i32(i32 %74, i1 false)
  %76 = icmp sgt i32 %75, %25
  br i1 %76, label %31, label %.preheader.2

.preheader.2:                                     ; preds = %71
  %77 = load i32, ptr %11, align 4, !tbaa !3
  %78 = load i32, ptr %1, align 4, !tbaa !3
  %79 = sub i32 %77, %78
  %80 = call i32 @llvm.abs.i32(i32 %79, i1 false)
  %81 = icmp sgt i32 %80, %25
  br i1 %81, label %31, label %82

82:                                               ; preds = %.preheader.2
  %83 = load i32, ptr %11, align 4, !tbaa !3
  %84 = load i32, ptr %7, align 4, !tbaa !3
  %85 = sub i32 %83, %84
  %86 = call i32 @llvm.abs.i32(i32 %85, i1 false)
  %87 = icmp sgt i32 %86, %25
  br i1 %87, label %31, label %88

88:                                               ; preds = %82
  %89 = load i32, ptr %11, align 4, !tbaa !3
  %90 = load i32, ptr %15, align 4, !tbaa !3
  %91 = sub i32 %89, %90
  %92 = call i32 @llvm.abs.i32(i32 %91, i1 false)
  %93 = icmp sgt i32 %92, %25
  br i1 %93, label %31, label %94

94:                                               ; preds = %88
  %95 = load i32, ptr %11, align 4, !tbaa !3
  %96 = load i32, ptr %19, align 4, !tbaa !3
  %97 = sub i32 %95, %96
  %98 = call i32 @llvm.abs.i32(i32 %97, i1 false)
  %99 = icmp sgt i32 %98, %25
  br i1 %99, label %31, label %.preheader.3

.preheader.3:                                     ; preds = %94
  %100 = load i32, ptr %15, align 4, !tbaa !3
  %101 = load i32, ptr %1, align 4, !tbaa !3
  %102 = sub i32 %100, %101
  %103 = call i32 @llvm.abs.i32(i32 %102, i1 false)
  %104 = icmp sgt i32 %103, %25
  br i1 %104, label %31, label %105

105:                                              ; preds = %.preheader.3
  %106 = load i32, ptr %15, align 4, !tbaa !3
  %107 = load i32, ptr %7, align 4, !tbaa !3
  %108 = sub i32 %106, %107
  %109 = call i32 @llvm.abs.i32(i32 %108, i1 false)
  %110 = icmp sgt i32 %109, %25
  br i1 %110, label %31, label %111

111:                                              ; preds = %105
  %112 = load i32, ptr %15, align 4, !tbaa !3
  %113 = load i32, ptr %11, align 4, !tbaa !3
  %114 = sub i32 %112, %113
  %115 = call i32 @llvm.abs.i32(i32 %114, i1 false)
  %116 = icmp sgt i32 %115, %25
  br i1 %116, label %31, label %117

117:                                              ; preds = %111
  %118 = load i32, ptr %15, align 4, !tbaa !3
  %119 = load i32, ptr %19, align 4, !tbaa !3
  %120 = sub i32 %118, %119
  %121 = call i32 @llvm.abs.i32(i32 %120, i1 false)
  %122 = icmp sgt i32 %121, %25
  br i1 %122, label %31, label %.preheader.4

.preheader.4:                                     ; preds = %117
  %123 = load i32, ptr %19, align 4, !tbaa !3
  %124 = load i32, ptr %1, align 4, !tbaa !3
  %125 = sub i32 %123, %124
  %126 = call i32 @llvm.abs.i32(i32 %125, i1 false)
  %127 = icmp sgt i32 %126, %25
  br i1 %127, label %31, label %128

128:                                              ; preds = %.preheader.4
  %129 = load i32, ptr %19, align 4, !tbaa !3
  %130 = load i32, ptr %7, align 4, !tbaa !3
  %131 = sub i32 %129, %130
  %132 = call i32 @llvm.abs.i32(i32 %131, i1 false)
  %133 = icmp sgt i32 %132, %25
  br i1 %133, label %31, label %134

134:                                              ; preds = %128
  %135 = load i32, ptr %19, align 4, !tbaa !3
  %136 = load i32, ptr %11, align 4, !tbaa !3
  %137 = sub i32 %135, %136
  %138 = call i32 @llvm.abs.i32(i32 %137, i1 false)
  %139 = icmp sgt i32 %138, %25
  br i1 %139, label %31, label %140

140:                                              ; preds = %134
  %141 = load i32, ptr %19, align 4, !tbaa !3
  %142 = load i32, ptr %15, align 4, !tbaa !3
  %143 = sub i32 %141, %142
  %144 = call i32 @llvm.abs.i32(i32 %143, i1 false)
  %145 = icmp sgt i32 %144, %25
  br i1 %145, label %31, label %146

146:                                              ; preds = %140
  %147 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.286129, i64 3, ptr null, i32 -1, ptr nonnull @_QQcl.e374f9a662da4c1875cb05eb1b1adee4, i32 22)
  %148 = call i1 @_FortranAioOutputAscii(ptr %147, ptr nonnull @_QQcl.59617921, i64 4)
  %149 = call i32 @_FortranAioEndIoStatement(ptr %147)
  ret void
}

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

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, 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 nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #0

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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"}
