program prob5
    implicit none
    integer(16)::N, i, j, cnt, ans1
    integer(16),allocatable::A(:), c(:), d(:)
    read(*,*) N
    allocate(A(N), c(N), d(N))
    read(*,*) A
    call heapsort(N,A)

    j = 1
    cnt = 0
    c(1) = 1
    d(1) = A(N)
    do i = N-1, 1, -1
        if(A(i) == d(j))then
            c(j) = c(j) + 1
            if(cnt == 1 .and. c(j) >= 4)then
                write(*,*) A(i)*A(i)
                stop
            else if(c(j) == 2)then
                if(cnt == 0)then
                    cnt = 1
                    ans1 = d(j)
                else if(cnt == 1)then
                    write(*,*) ans1*d(j)
                    stop
                end if
            end if
        else
            j = j+1
            c(j) = 1
            d(j) = A(i)
        end if

    end do
    write(*,*) 0
    stop
    contains
    subroutine heapsort(n,array)
        implicit none
        integer(16),intent(in) :: n
        integer(16),intent(inout) :: array(1:n)
       
        integer ::i,k,j,l
        double precision :: t
       
        if(n.le.0)then
           write(6,*)"Error, at heapsort"; stop
        endif
        if(n.eq.1)return
      
        l=n/2+1
        k=n
        do while(k.ne.1)
           if(l.gt.1)then
              l=l-1
              t=array(L)
           else
              t=array(k)
              array(k)=array(1)
              k=k-1
              if(k.eq.1) then
                 array(1)=t
                 exit
              endif
           endif
           i=l
           j=l+l
           do while(j.le.k)
              if(j.lt.k)then
                 if(array(j).lt.array(j+1))j=j+1
              endif
              if (t.lt.array(j))then
                 array(i)=array(j)
                 i=j
                 j=j+j
              else
                 j=k+1
              endif
           enddo
           array(i)=t
        enddo
      
        return
    end subroutine heapsort
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"

@_QFEa.0 = internal unnamed_addr global ptr null
@_QFEa.8 = internal unnamed_addr global i64 0
@_QFEc.0 = internal unnamed_addr global ptr null
@_QFEd.0 = internal unnamed_addr global ptr null
@_QQcl.a44aae03b576dfc0d7e8beea70187b71 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_7008/source.f\00"
@_QQcl.4572726F722C2061742068656170736F7274 = linkonce constant [18 x i8] c"Error, at heapsort"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

; Function Attrs: noreturn
define void @_QQmain() local_unnamed_addr #1 {
  %1 = alloca { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, align 8
  %2 = alloca i128, align 8
  %3 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.a44aae03b576dfc0d7e8beea70187b71, i32 5)
  %4 = call i1 @_FortranAioInputInteger(ptr %3, ptr nonnull %2, i32 16)
  %5 = call i32 @_FortranAioEndIoStatement(ptr %3)
  %6 = load i128, ptr %2, align 8, !tbaa !3
  %7 = trunc i128 %6 to i64
  %8 = call i64 @llvm.smax.i64(i64 %7, i64 0)
  %9 = shl i64 %8, 4
  %10 = call ptr @malloc(i64 %9)
  store ptr %10, ptr @_QFEa.0, align 8, !tbaa !7
  store i64 %8, ptr @_QFEa.8, align 8, !tbaa !7
  %11 = call ptr @malloc(i64 %9)
  store ptr %11, ptr @_QFEc.0, align 8, !tbaa !7
  %12 = call ptr @malloc(i64 %9)
  store ptr %12, ptr @_QFEd.0, align 8, !tbaa !7
  %13 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.a44aae03b576dfc0d7e8beea70187b71, i32 7)
  %.unpack = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %.unpack624.unpack.unpack626 = load i64, ptr @_QFEa.8, align 8, !tbaa !7
  store ptr %.unpack, ptr %1, align 8, !tbaa !7
  %.fca.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 1
  store i64 16, ptr %.fca.1.gep, align 8, !tbaa !7
  %.fca.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep, align 8, !tbaa !7
  %.fca.3.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 3
  store i8 1, ptr %.fca.3.gep, align 4, !tbaa !7
  %.fca.4.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 4
  store i8 11, ptr %.fca.4.gep, align 1, !tbaa !7
  %.fca.5.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep, align 2, !tbaa !7
  %.fca.6.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep, align 1, !tbaa !7
  %.fca.7.0.0.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 7, i64 0, i64 0
  store i64 1, ptr %.fca.7.0.0.gep, align 8, !tbaa !7
  %.fca.7.0.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 7, i64 0, i64 1
  store i64 %.unpack624.unpack.unpack626, ptr %.fca.7.0.1.gep, align 8, !tbaa !7
  %.fca.7.0.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 7, i64 0, i64 2
  store i64 16, ptr %.fca.7.0.2.gep, align 8, !tbaa !7
  %14 = call i1 @_FortranAioInputDescriptor(ptr %13, ptr nonnull %1)
  %15 = call i32 @_FortranAioEndIoStatement(ptr %13)
  %.unpack629 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  call void @_QFPheapsort(ptr nonnull %2, ptr %.unpack629)
  %.unpack641 = load ptr, ptr @_QFEc.0, align 8, !tbaa !7
  store i128 1, ptr %.unpack641, align 8, !tbaa !3
  %.unpack653 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %16 = load i128, ptr %2, align 8, !tbaa !3
  %17 = trunc i128 %16 to i64
  %18 = add i64 %17, -1
  %19 = getelementptr i128, ptr %.unpack653, i64 %18
  %20 = load i128, ptr %19, align 8, !tbaa !3
  %.unpack665 = load ptr, ptr @_QFEd.0, align 8, !tbaa !7
  store i128 %20, ptr %.unpack665, align 8, !tbaa !3
  %21 = load i128, ptr %2, align 8, !tbaa !3
  %.0590802 = add i128 %21, -1
  %22 = icmp sgt i128 %.0590802, 0
  br i1 %22, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %0, %75
  %.0585808.in = phi i128 [ %.0585808, %75 ], [ %21, %0 ]
  %.0590807 = phi i128 [ %.0590, %75 ], [ %.0590802, %0 ]
  %.0806 = phi i128 [ %.1, %75 ], [ 1, %0 ]
  %.0586805 = phi i128 [ %.1587, %75 ], [ 0, %0 ]
  %.0588804 = phi i128 [ %.1589, %75 ], [ undef, %0 ]
  %.0585808 = add i128 %.0585808.in, -1
  %23 = trunc i128 %.0585808 to i64
  %24 = add i64 %23, -1
  %25 = getelementptr i128, ptr %.unpack653, i64 %24
  %26 = load i128, ptr %25, align 8, !tbaa !3
  %27 = trunc i128 %.0806 to i64
  %28 = add i64 %27, -1
  %29 = getelementptr i128, ptr %.unpack665, i64 %28
  %30 = load i128, ptr %29, align 8, !tbaa !3
  %31 = icmp eq i128 %26, %30
  br i1 %31, label %32, label %67

32:                                               ; preds = %.lr.ph
  %33 = add i64 %27, -1
  %34 = getelementptr i128, ptr %.unpack641, i64 %33
  %35 = load i128, ptr %34, align 8, !tbaa !3
  %36 = add i128 %35, 1
  store i128 %36, ptr %34, align 8, !tbaa !3
  %37 = icmp eq i128 %.0586805, 1
  %38 = icmp sgt i128 %36, 3
  %39 = and i1 %37, %38
  br i1 %39, label %40, label %50

40:                                               ; preds = %32
  %41 = trunc i128 %.0585808 to i64
  %42 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.a44aae03b576dfc0d7e8beea70187b71, i32 18)
  %.unpack785 = load ptr, ptr @_QFEa.0, align 8, !tbaa !7
  %43 = add i64 %41, -1
  %44 = getelementptr i128, ptr %.unpack785, i64 %43
  %45 = load i128, ptr %44, align 8, !tbaa !3
  %46 = mul i128 %45, %45
  %47 = call i1 @_FortranAioOutputInteger128(ptr %42, i128 %46)
  %48 = call i32 @_FortranAioEndIoStatement(ptr %42)
  %49 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

50:                                               ; preds = %32
  %51 = icmp eq i128 %36, 2
  br i1 %51, label %52, label %75

52:                                               ; preds = %50
  %53 = icmp eq i128 %.0586805, 0
  br i1 %53, label %54, label %56

54:                                               ; preds = %52
  %55 = load i128, ptr %29, align 8, !tbaa !3
  br label %75

56:                                               ; preds = %52
  br i1 %37, label %57, label %75

57:                                               ; preds = %56
  %58 = trunc i128 %.0806 to i64
  %59 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.a44aae03b576dfc0d7e8beea70187b71, i32 25)
  %.unpack761 = load ptr, ptr @_QFEd.0, align 8, !tbaa !7
  %60 = add i64 %58, -1
  %61 = getelementptr i128, ptr %.unpack761, i64 %60
  %62 = load i128, ptr %61, align 8, !tbaa !3
  %63 = mul i128 %62, %.0588804
  %64 = call i1 @_FortranAioOutputInteger128(ptr %59, i128 %63)
  %65 = call i32 @_FortranAioEndIoStatement(ptr %59)
  %66 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

67:                                               ; preds = %.lr.ph
  %68 = add i128 %.0806, 1
  %69 = trunc i128 %68 to i64
  %70 = add i64 %69, -1
  %71 = getelementptr i128, ptr %.unpack641, i64 %70
  store i128 1, ptr %71, align 8, !tbaa !3
  %72 = load i128, ptr %25, align 8, !tbaa !3
  %73 = add i64 %69, -1
  %74 = getelementptr i128, ptr %.unpack665, i64 %73
  store i128 %72, ptr %74, align 8, !tbaa !3
  br label %75

75:                                               ; preds = %54, %56, %50, %67
  %.1589 = phi i128 [ %55, %54 ], [ %.0588804, %56 ], [ %.0588804, %50 ], [ %.0588804, %67 ]
  %.1587 = phi i128 [ 1, %54 ], [ %.0586805, %56 ], [ %.0586805, %50 ], [ %.0586805, %67 ]
  %.1 = phi i128 [ %.0806, %54 ], [ %.0806, %56 ], [ %.0806, %50 ], [ %68, %67 ]
  %.0590 = add i128 %.0590807, -1
  %76 = icmp sgt i128 %.0590, 0
  br i1 %76, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %75, %0
  %77 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.a44aae03b576dfc0d7e8beea70187b71, i32 36)
  %78 = call i1 @_FortranAioOutputInteger32(ptr %77, i32 0)
  %79 = call i32 @_FortranAioEndIoStatement(ptr %77)
  %80 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable
}

define void @_QFPheapsort(ptr nocapture readonly %0, ptr nocapture %1) local_unnamed_addr {
  %3 = load i128, ptr %0, align 8, !tbaa !3
  %4 = icmp slt i128 %3, 1
  br i1 %4, label %5, label %10

5:                                                ; preds = %2
  %6 = tail call ptr @_FortranAioBeginExternalListOutput(i32 6, ptr nonnull @_QQcl.a44aae03b576dfc0d7e8beea70187b71, i32 48)
  %7 = tail call i1 @_FortranAioOutputAscii(ptr %6, ptr nonnull @_QQcl.4572726F722C2061742068656170736F7274, i64 18)
  %8 = tail call i32 @_FortranAioEndIoStatement(ptr %6)
  %9 = tail call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

10:                                               ; preds = %2
  %11 = icmp eq i128 %3, 1
  br i1 %11, label %.loopexit, label %12

12:                                               ; preds = %10
  %13 = trunc i128 %3 to i32
  %.not50 = icmp eq i32 %13, 1
  br i1 %.not50, label %.loopexit, label %.lr.ph53.preheader

.lr.ph53.preheader:                               ; preds = %12
  %14 = lshr i128 %3, 1
  %15 = trunc i128 %14 to i32
  %16 = add i32 %15, 1
  br label %.lr.ph53

.lr.ph53:                                         ; preds = %.lr.ph53.preheader, %.split48.us
  %.02552 = phi i32 [ %.1, %.split48.us ], [ %16, %.lr.ph53.preheader ]
  %.02651 = phi i32 [ %.127.fr, %.split48.us ], [ %13, %.lr.ph53.preheader ]
  %17 = icmp sgt i32 %.02552, 1
  br i1 %17, label %18, label %25

18:                                               ; preds = %.lr.ph53
  %19 = add nsw i32 %.02552, -1
  %20 = zext i32 %19 to i64
  %21 = add nsw i64 %20, -1
  %22 = getelementptr i128, ptr %1, i64 %21
  %23 = load i128, ptr %22, align 8, !tbaa !3
  %24 = sitofp i128 %23 to double
  br label %36

25:                                               ; preds = %.lr.ph53
  %26 = sext i32 %.02651 to i64
  %27 = add nsw i64 %26, -1
  %28 = getelementptr i128, ptr %1, i64 %27
  %29 = load i128, ptr %28, align 8, !tbaa !3
  %30 = sitofp i128 %29 to double
  %31 = load i128, ptr %1, align 8, !tbaa !3
  store i128 %31, ptr %28, align 8, !tbaa !3
  %32 = add i32 %.02651, -1
  %33 = icmp eq i32 %32, 1
  br i1 %33, label %34, label %36

34:                                               ; preds = %25
  %35 = fptosi double %30 to i128
  store i128 %35, ptr %1, align 8, !tbaa !3
  br label %.loopexit

36:                                               ; preds = %18, %25
  %.127 = phi i32 [ %.02651, %18 ], [ %32, %25 ]
  %.1 = phi i32 [ %19, %18 ], [ %.02552, %25 ]
  %.0 = phi double [ %24, %18 ], [ %30, %25 ]
  %.127.fr = freeze i32 %.127
  %37 = shl i32 %.1, 1
  %.not333542 = icmp sgt i32 %37, %.127.fr
  br i1 %.not333542, label %.split48.us, label %.lr.ph.lr.ph

.lr.ph.lr.ph:                                     ; preds = %36
  %.not33.not = icmp eq i32 %.127.fr, 2147483647
  br i1 %.not33.not, label %.lr.ph.preheader, label %.lr.ph.us

.lr.ph.preheader:                                 ; preds = %.lr.ph.lr.ph
  %.127.fr.le = freeze i32 %.127
  %38 = add i32 %.127.fr.le, 1
  %.not57 = icmp eq i32 %38, 2147483647
  %39 = sext i32 %38 to i64
  %40 = add nsw i64 %39, -1
  %41 = getelementptr i128, ptr %1, i64 %40
  %42 = getelementptr i128, ptr %1, i64 %39
  br label %64

.lr.ph.us:                                        ; preds = %.lr.ph.lr.ph, %.split.us.us
  %.028.ph44.us = phi i32 [ %63, %.split.us.us ], [ %37, %.lr.ph.lr.ph ]
  %.030.ph43.us = phi i32 [ %.129.us.us, %.split.us.us ], [ %.1, %.lr.ph.lr.ph ]
  %43 = icmp slt i32 %.028.ph44.us, %.127.fr
  br i1 %43, label %44, label %53

44:                                               ; preds = %.lr.ph.us
  %45 = sext i32 %.028.ph44.us to i64
  %46 = add nsw i64 %45, -1
  %47 = getelementptr i128, ptr %1, i64 %46
  %48 = load i128, ptr %47, align 8, !tbaa !3
  %49 = getelementptr i128, ptr %1, i64 %45
  %50 = load i128, ptr %49, align 8, !tbaa !3
  %51 = icmp slt i128 %48, %50
  %52 = zext i1 %51 to i32
  %spec.select.us.us = or i32 %.028.ph44.us, %52
  br label %53

53:                                               ; preds = %44, %.lr.ph.us
  %.129.us.us = phi i32 [ %.028.ph44.us, %.lr.ph.us ], [ %spec.select.us.us, %44 ]
  %54 = sext i32 %.129.us.us to i64
  %55 = add nsw i64 %54, -1
  %56 = getelementptr i128, ptr %1, i64 %55
  %57 = load i128, ptr %56, align 8, !tbaa !3
  %58 = sitofp i128 %57 to double
  %59 = fcmp olt double %.0, %58
  br i1 %59, label %.split.us.us, label %.split48.us

.split.us.us:                                     ; preds = %53
  %60 = sext i32 %.030.ph43.us to i64
  %61 = add nsw i64 %60, -1
  %62 = getelementptr i128, ptr %1, i64 %61
  store i128 %57, ptr %62, align 8, !tbaa !3
  %63 = shl i32 %.129.us.us, 1
  %.not3335.us = icmp sgt i32 %63, %.127.fr
  br i1 %.not3335.us, label %.split48.us, label %.lr.ph.us

64:                                               ; preds = %.split, %.lr.ph.preheader
  %.028.ph44 = phi i32 [ %94, %.split ], [ %37, %.lr.ph.preheader ]
  %.030.ph43 = phi i32 [ %.129.lcssa, %.split ], [ %.1, %.lr.ph.preheader ]
  %65 = sext i32 %.028.ph44 to i64
  %66 = add nsw i64 %65, -1
  %67 = getelementptr i128, ptr %1, i64 %66
  %68 = load i128, ptr %67, align 8, !tbaa !3
  %69 = getelementptr i128, ptr %1, i64 %65
  %70 = load i128, ptr %69, align 8, !tbaa !3
  %71 = icmp slt i128 %68, %70
  %72 = zext i1 %71 to i32
  %spec.select.peel = or i32 %.028.ph44, %72
  %73 = sext i32 %spec.select.peel to i64
  %74 = add nsw i64 %73, -1
  %75 = getelementptr i128, ptr %1, i64 %74
  %76 = load i128, ptr %75, align 8, !tbaa !3
  %77 = sitofp i128 %76 to double
  %78 = fcmp olt double %.0, %77
  br i1 %78, label %.split, label %.peel.next

.peel.next:                                       ; preds = %64, %84
  br i1 %.not57, label %84, label %79

79:                                               ; preds = %.peel.next
  %80 = load i128, ptr %41, align 8, !tbaa !3
  %81 = load i128, ptr %42, align 8, !tbaa !3
  %82 = icmp slt i128 %80, %81
  %83 = zext i1 %82 to i32
  %spec.select = add nsw i32 %38, %83
  br label %84

84:                                               ; preds = %79, %.peel.next
  %.129 = phi i32 [ 2147483647, %.peel.next ], [ %spec.select, %79 ]
  %85 = sext i32 %.129 to i64
  %86 = add nsw i64 %85, -1
  %87 = getelementptr i128, ptr %1, i64 %86
  %88 = load i128, ptr %87, align 8, !tbaa !3
  %89 = sitofp i128 %88 to double
  %90 = fcmp olt double %.0, %89
  br i1 %90, label %.split, label %.peel.next, !llvm.loop !9

.split:                                           ; preds = %84, %64
  %.129.lcssa = phi i32 [ %spec.select.peel, %64 ], [ %.129, %84 ]
  %.lcssa = phi i128 [ %76, %64 ], [ %88, %84 ]
  %91 = sext i32 %.030.ph43 to i64
  %92 = add nsw i64 %91, -1
  %93 = getelementptr i128, ptr %1, i64 %92
  store i128 %.lcssa, ptr %93, align 8, !tbaa !3
  %94 = shl i32 %.129.lcssa, 1
  br label %64

.split48.us:                                      ; preds = %.split.us.us, %53, %36
  %.030.ph.lcssa = phi i32 [ %.1, %36 ], [ %.030.ph43.us, %53 ], [ %.129.us.us, %.split.us.us ]
  %95 = fptosi double %.0 to i128
  %96 = sext i32 %.030.ph.lcssa to i64
  %97 = add nsw i64 %96, -1
  %98 = getelementptr i128, ptr %1, i64 %97
  store i128 %95, ptr %98, align 8, !tbaa !3
  %.not = icmp eq i32 %.127.fr, 1
  br i1 %.not, label %.loopexit, label %.lr.ph53

.loopexit:                                        ; preds = %.split48.us, %12, %34, %10
  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 i1 @_FortranAioInputDescriptor(ptr, ptr) local_unnamed_addr

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

declare i1 @_FortranAioOutputInteger128(ptr, i128) local_unnamed_addr

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

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

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

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

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { noreturn }
attributes #2 = { 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"}
!7 = !{!8, !8, i64 0}
!8 = !{!"descriptor member", !5, i64 0}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.peeled.count", i32 1}
